我遵循了Vogella的教程,使用JAVA解析RSS提要。代码很简单,我能够让它发挥作用。问题是解析中的一些节点有CDATA,并且我得到了空字符串(基于解析器的实现方式)。
简而言之,我的问题是,有没有一种简单的方法可以修改这个实现来处理CDATA?
Vogella RSS Parser
它处理CDATA,不幸的是,解析器只在读取第一行后返回值,因此在类似的情况下
<description>
<![CDATA[
Lorem ipsum..
]]>
</description>
直到元素结束时才会读取。您应该将RSSFeedParser.getCharacterData方法更改为以下内容:
private String getCharacterData(XMLEvent event, XMLEventReader eventReader)
throws XMLStreamException {
StringBuilder result = new StringBuilder();
while (!(event = eventReader.nextEvent()).isEndElement()) {
if (event instanceof Characters) {
result.append(event.asCharacters().getData());
}
}
return result.toString();
}
现在描述标签的内容将是"\nRem ipsum..\n"