我从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中有一些像’所以当我打电话时
document_Twitter.getElementsByTagName("title").item(2).getFirstChild().getNodeValue()
字符串在那种字符之前被中继
文字只有一个标签
<item>
<title>SMWRME: Internet per “Collaborare senza confini”. Soprattutto alla SMW di Roma, dal 7 all'11 febbraio. Ecco il terzo percorso. http://cot.ag/ewnJ4F</title>
<description>SMWRME: Internet per “Collaborare senza confini”. 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><a href="http://cotweet.com/?utm_source=sp1" rel="nofollow">CoTweet</a></twitter:source>
<twitter:place/>
</item>
我注意到这种行为确实只发生在Android应用程序中。 相同的代码适用于Java应用程序。 有人能帮助我吗?
答案 0 :(得分:1)
您可以试试document_Twitter.getElementsByTagName("title").item(2).getTextContent()
吗?此节点下可能实际上有多个文本节点,如
- "item" element
- "title" element
- text node "SMWRME: Internet per "
- text node "“"
- text node "Collaborare senza confini"
- text node "”"
大多数SAX解析器会提供分成多个部分的字符内容,因此我可以想象一个DOM解析器也可以这样做。 方法getTextContent应该返回连接的所有子子节点的文本内容。
您还可以在创建DocumentBuilder之前尝试在DocumentBuilderFactory上调用setCoalescing(true),文档提到这会影响CDATA部分,但它也可能会更改字符实体的处理。