【问题标题】:Java XML parsing: taking inner XML using SAXJava XML 解析:使用 SAX 获取内部 XML
【发布时间】:2011-06-29 01:18:54
【问题描述】:

我正在使用 SAX 解析一个 XML 文件,有时我需要一个元素的内部 XML。例如,对于以下 XML

<a name="abc">
  <b>def</b>
<a>

我需要获取元素 a 的内部 XML,即

<b>def<b>

最简单的方法是什么?

谢谢。

伊万

【问题讨论】:

  • 为什么不使用 xpath?对于您描述的情况,SAX 编码有些痛苦

标签: java xml sax xml-parsing


【解决方案1】:

对于这种情况,我建议使用 2 个内容处理程序。第一个负责查找文档的相关部分,第二个负责处理内容。我对类似问题的回答(见下面的链接)演示了如何实现这种方法:

【讨论】:

  • 太好了,非常感谢。还有一个问题。如何用 SAX 阅读“纯 XML 代码”?我应该重建它(startElement 读取元素的名称,characters 读取里面的文本......),还是有更好的方法?我希望其他处理程序获取元素内的所有 XML 并将其作为结果返回。
  • 最终这取决于你想做什么(你能提供更多细节吗?)。最终,SAX 只是为您提供事件,您需要相应地处理它们。 StAX 是一个类似的 API,您可能会发现它很容易使用,因为您可以控制何时触发事件(最终您会得到相同的信息)。
  • 我正在分析 WSLA 文档。我需要从SLAParameterServiceLevelObjective 等一些重要元素中获取信息。此外,对于一些重要元素(例如metric),我需要获取有关元素(即属性值)和元素的整个 XML 代码。
猜你喜欢
  • 2012-12-31
  • 1970-01-01
  • 1970-01-01
  • 2017-08-19
  • 1970-01-01
  • 1970-01-01
  • 2012-08-27
  • 2016-10-15
  • 1970-01-01
相关资源
最近更新 更多