使用JAVA解析RSS Feed时处理CDATA

时间:2014-09-06 04:36:43

标签: java rss cdata

我按照Vogella的教程使用JAVA解析RSS Feed。 代码很简单,我能够让它工作。 问题是我解析的一些节点有CDATA,我得到空字符串(基于解析器的实现方式)。

简而言之,我的问题是,是否有一种简单的方法可以修改此实现来处理CDATA?

Vogella RSS Parser

1 个答案:

答案 0 :(得分:1)

它处理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”