我按照 Vogella 的教程使用 JAVA 解析 RSS Feed。 代码很简单,我能够让它工作。 问题是我解析的某些节点具有 CDATA,并且我得到空字符串(基于解析器的实现方式)。
简而言之,我的问题是,是否有一种简单的方法来修改此实现来处理 CDATA?
最佳答案
它处理 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();
}
现在描述标签的内容将是“\nLorem ipsum..\n”
关于java - 使用 JAVA 解析 RSS Feed 时处理 CDATA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25696816/