2012-02-21 5 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が失われます:&クラスタ= 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 –

答えて

1

あなたは、このように明示的にのみ、あなたの<link>における最初のテキストノードからテキストを取得

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

を持っています。

ほとんどの場合、残りのテキストはtextLinkListの連続する項目に含まれています。