【问题标题】:Handling CDATA when parsing RSS Feed with JAVA使用 JAVA 解析 RSS Feed 时处理 CDATA
【发布时间】:2014-09-06 04:36:43
【问题描述】:

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

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

Vogella RSS Parser

【问题讨论】:

    标签: java rss cdata


    【解决方案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”

    【讨论】:

      猜你喜欢
      • 2011-03-02
      • 1970-01-01
      • 2012-08-02
      • 1970-01-01
      • 2013-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多