2012-02-21 42 views
0

我遇到問題。我解析XML。有URL在XML,看起來像這樣:Android中解析XML時的URL中的&符號

<link>http://basa.med-info.ru/xse/index.php?query=грипп&amp;cluster=9025</link> 

當這個鏈接被解析,使用此代碼:

NodeList linkList = drugElement.getElementsByTagName("link"); 
      Element linkElement = (Element)linkList.item(0); 
      NodeList textLinkList = linkElement.getChildNodes(); 
      link = textLinkList.item(0).getNodeValue().trim(); 
      Log.i(TAG, "link: "+link); 

的結果是這樣的:

link: http://basa.med-info.ru/xse/index.php?query=грипп 

所以,由於某種原因URL的其餘部分丟失:& cluster = 9025 如何解決它?

更新真正的代碼是這樣的:

NodeList linkList = drugElement.getElementsByTagName("link"); 
      Element linkElement = (Element)linkList.item(0); 
      NodeList textLinkList = linkElement.getChildNodes(); 
      link = ""; 
      for (int j = 0; j < textLinkList.getLength(); j++) 
      { 
        link += textLinkList.item(j).getNodeValue(); 
      } 
      Log.i(TAG, "link: "+link); 
+1

逃脫它。 http://commons.apache.org/lang/api-2.4/org/apache/commons/lang/StringEscapeUtils.html和http://www.java2s.com/Code/Java/Apache-Common/StringEscapeUtils.htm – 2012-02-21 12:23:23

回答

1

你有

 link = textLinkList.item(0).getNodeValue().trim(); 

從而明確地只接受來自您<link>第一文本節點獲取文本。

最有可能的是文本的其餘部分在textLinkList的連續項目中。