Java XML 解析:使用 SAX 获取内部 XML
Posted
技术标签:
【中文标题】Java XML 解析:使用 SAX 获取内部 XML【英文标题】:Java XML parsing: taking inner XML using SAX 【发布时间】:2011-06-29 01:18:54 【问题描述】:我正在使用 SAX 解析一个 XML 文件,有时我需要一个元素的内部 XML。例如,对于以下 XML
<a name="abc">
<b>def</b>
<a>
我需要获取元素 a 的内部 XML,即
<b>def<b>
最简单的方法是什么?
谢谢。
伊万
【问题讨论】:
为什么不使用 xpath?对于您描述的情况,SAX 编码有些痛苦 【参考方案1】:对于这种情况,我建议使用 2 个内容处理程序。第一个负责查找文档的相关部分,第二个负责处理内容。我对类似问题的回答(见下面的链接)演示了如何实现这种方法:
Using SAX to parse common XML elements【讨论】:
太好了,非常感谢。还有一个问题。如何用 SAX 阅读“纯 XML 代码”?我应该重建它(startElement
读取元素的名称,characters
读取里面的文本......),还是有更好的方法?我希望其他处理程序获取元素内的所有 XML 并将其作为结果返回。
最终这取决于你想做什么(你能提供更多细节吗?)。最终,SAX 只是为您提供事件,您需要相应地处理它们。 StAX 是一个类似的 API,您可能会发现它很容易使用,因为您可以控制何时触发事件(最终您会得到相同的信息)。
我正在分析 WSLA 文档。我需要从SLAParameter
、ServiceLevelObjective
等一些重要元素中获取信息。此外,对于一些重要元素(例如metric
),我需要获取有关元素(即属性值)和元素的整个 XML 代码。以上是关于Java XML 解析:使用 SAX 获取内部 XML的主要内容,如果未能解决你的问题,请参考以下文章