使用JAVA解析RSS源时处理CDATA
问题描述:
我遵循Vogella的教程,使用JAVA解析RSS源。代码很简单,我能够使它工作。 问题是一些节点即时解析有CDATA,我得到空字符串(基于解析器的实现方式)。使用JAVA解析RSS源时处理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存有.. \ n”个