java - 使用 JAVA 解析 RSS Feed 时处理 CDATA

标签 java rss cdata

我按照 Vogella 的教程使用 JAVA 解析 RSS Feed。 代码很简单,我能够让它工作。 问题是我解析的某些节点具有 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();
}

现在描述标签的内容将是“\nLorem ipsum..\n”

关于java - 使用 JAVA 解析 RSS Feed 时处理 CDATA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25696816/

相关文章:

java - 由 : java. lang.ClassNotFoundException : org. apache.zookeeper.KeeperException 引起

java - 带有 JUnit 临时文件夹的 Spring Config

php - 构建嵌入链接的 RSS 提要

html - 阻止 WordPress 在 CDATA 中包含脚本

java - 理解类型推断和目标类型之间的关系

java - 在窗口管理器中膨胀类时出错

javascript - 在等待事件触发时,我应该明确地创建一个 promise 吗?

c# - 代理asp不加载外部xml

jsf-2 - JSF 2.2 CDATA 被转义

xml - 如何使用 PowerShell 获取 XML 文件中 CDATA 中的值?