【发布时间】:2012-01-25 08:56:32
【问题描述】:
我已经接管了一个应用程序的维护工作,该应用程序使用 stax 解析器将包含许多记录的 XML 文件分解为单独的记录以供进一步处理。在我看来,为此目的使用这种类型的解析器太过分了,但我没有写它。
应用程序现在遇到如下数据:
<name><![CDATA[A & B]]></name>
我们当前的解析器为开始'name'标签返回一个事件。 下一个事件是值为“A & B”的角色事件。
从 Sun 的网页上我发现了这个:
报告 CDATA 事件 Streaming XML Parser 中实现的 javax.xml.stream.XMLStreamReader 不报告 CDATA 事件。如果您的应用程序需要接收此类事件,请配置 XMLInputFactory 以设置以下特定于实现的 report-cdata-event 属性:
XMLInputFactory factory = XMLInptuFactory.newInstance();
factory.setProperty("report-cdata-event", Boolean.TRUE);
我们使用的解析器不支持“report-cdata-event”属性。
我想找到一个可以报告此类事件的解析器,这样我就不必检查每一段文本中是否有需要由 CDATA 构造保护的字符。
更新:
发布此消息后,我浏览了一些相关问题,并提到了“isCoalescing”属性;为了记录,它被设置为 FALSE。
【问题讨论】:
标签: java xml-parsing cdata stax