如何使用具有相同标记和多属性的SAX解析xml

问题描述:

当我使用SAX解析此XML时,我不知道如何通过三个不同的“rel”来获取这三个“link”标记的href属性值,属性。如何使用具有相同标记和多属性的SAX解析xml

<entry> 
<title>ahbei</title> 
<link href="http://api.douban.com/people/1000001" rel="self" /> 
<link href="http://www.douban.com/people/ahbei/" rel="alternate" /> 
<link href="http://img3.douban.com/icon/u1000001-20.jpg" rel="icon" /> 
<uri>http://api.douban.com/people/1000001</uri> 
</entry> 

我无法通过此代码获取“http://img3.douban.com/icon/u1000001-20.jpg”。

public void startElement(String uri, String localName, String qName, 
      Attributes atts) throws SAXException { 

     if (localName.equals("link") && (atts.getValue("rel") == "icon")) // (*) 
     { 
      NowState = DBU_icon_url; 
      DouBanUser.setIcon(atts.getValue(0)); 
      return; 
     } 

    } 

谢谢。


变化 “if (localName.equals("link") && (atts.getValue("rel") == "icon"))” => “if (localName.equals("link") && atts.getValue("rel").equals("icon"))

+0

你通过这段代码得到了什么* –

+0

尝试'if(localName.equals(“link”)&& atts.getValue(“rel”)。equals(“icon”))' –

+0

我想获得第三个链接的href值。 – Xhinking

我认为这将解决您的问题。

NodeList link = elementW.getElementsByTagName("link"); 
int getLinkCount = link.getLength(); 
Element elementLink; 
if (getLinkCount != 0) { 
for (int i = 0; i < getLinkCount; i++) { 
    elementLink = (Element) Link.item(i); 

    // Here you can get these three links. 
} 
} 
+0

谢谢你Saurabh! – Xhinking