【问题标题】:Is there a Java library to parse the XML string but only the required element and ignore the rest? (time optimization)是否有一个 Java 库来解析 XML 字符串,但只解析所需的元素而忽略其余元素? (时间优化)
【发布时间】:2020-01-21 16:08:00
【问题描述】:

我们有一个来自一个 Web 服务的很长的 XMLResponse,我们想优化解析这个 XMLResponse 的时间,所以策略是逐行解析 XMLResponse,直到我们从 XMLResponse 中得到我们需要的内容 => 强制元素

我们知道强制元素,我们也知道 XMLResponse 是有效的 XML 对象,所以我们可以在到达末尾之前停止读取字符串。

请问各位:有什么工具可以帮助我们做到这一点?

提前谢谢你...

【问题讨论】:

  • 也许 XPath 在这里有帮助?
  • 我不会逐行解析。 XML 不是面向行的,行的任何更改都会破坏您的代码。如果您想节省内存,请查看 SAX XML 解析,其中一次只处理一个元素,而不是 DOM 解析,后者将整个 XML 保存在内存中。

标签: java http xml-parsing httpconnection lib


【解决方案1】:

使用 Stax api 可能是解析 xml 的最有效方式,因为调用代码处于完全控制之下,并且可以跳过不需要的整个元素子树。

https://medium.com/tech-travelstart/efficient-xml-parsing-with-java-df3169e1766b 有一个关于这种方法的很好的教程

【讨论】:

    【解决方案2】:

    我不建议手动解析 XML。您要么准确地解析它(这与使用解析器解析它一样耗时),要么冒着错误的风险。

    如果您需要性能,您可以使用 SAX 解析器,它会变得更复杂,但速度会尽可能快。

    【讨论】:

      猜你喜欢
      • 2016-04-12
      • 1970-01-01
      • 2022-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-17
      相关资源
      最近更新 更多