2011-01-20 110 views
3

我得到一些文本從XML文件XML解析問題

URL url_Twitter = new URL("http://twitter.com/statuses/user_timelineID_PROVA.rss"); 
HttpURLConnection conn_Twitter =(HttpURLConnection)url_Twitter.openConnection(); 

DocumentBuilderFactory documentBF_Twitter = DocumentBuilderFactory.newInstance();    
DocumentBuilder documentB_Twitter = documentBF_Twitter.newDocumentBuilder();  
Document document_Twitter = documentB_Twitter.parse(conn_Twitter.getInputStream()); 

在XML中有像&#8217的某些字符;所以當我打電話

document_Twitter.getElementsByTagName("title").item(2).getFirstChild().getNodeValue() 

字符串是那種人物

的文本是在短短的一個標籤

<item> 
    <title>SMWRME: Internet per &#8220;Collaborare senza confini&#8221;. Soprattutto alla SMW di Roma, dal 7 all'11 febbraio. Ecco il terzo percorso. http://cot.ag/ewnJ4F</title> 
    <description>SMWRME: Internet per &#8220;Collaborare senza confini&#8221;. Soprattutto alla SMW di Roma, dal 7 all'11 febbraio. Ecco il terzo percorso. http://cot.ag/ewnJ4F</description> 
    <pubDate>Mon, 27 Dec 2010 20:05:01 +0000</pubDate> 
    <guid>http://twitter.com/SMWRME/statuses/19483914259140609</guid> 
    <link>http://twitter.com/SMWRME/statuses/19483914259140609</link> 
    <twitter:source>&lt;a href=&quot;http://cotweet.com/?utm_source=sp1&quot; rel=&quot;nofollow&quot;&gt;CoTweet&lt;/a&gt;</twitter:source> 
    <twitter:place/> 
    </item> 

我注意到,這種行爲確實發生只是Android應用之前集羣。 相同的代碼適用於java應用程序。 有人可以幫我嗎?

回答

1

您能試試document_Twitter.getElementsByTagName("title").item(2).getTextContent()嗎?有可能實際上是多個文本節點此節點下,像

- "item" element 
    - "title" element 
    - text node "SMWRME: Internet per " 
    - text node "&#8220;" 
    - text node "Collaborare senza confini" 
    - text node "&#8221;" 

大多數SAX解析器將在多個部門提供的字符內容拆分,所以我能想象一個DOM解析器這樣做。 方法getTextContent應返回連接的所有子子節點的文本內容。

在創建DocumentBuilder之前,您也可以嘗試在DocumentBuilderFactory上調用setCoalescing(true),文檔中提到這會影響CDATA部分,但它也可能會改變對字符實體的處理。

+0

感謝您的回答,我檢查了xml文件 – alessandro 2011-01-20 10:20:07