【问题标题】:How to extract chunks of XML?如何提取 XML 块?
【发布时间】:2019-06-26 22:55:19
【问题描述】:

我有 Big XML,其大小可以从 1.5 GB 变化到 1.5 GB +。其次,我有一个处理这个 XML 的实用程序。但在整个 XML 中,只有少数内部标签负责从该实用程序生成输出。

这里需要注意的是,如果它是一个小的 xml,它会被处理,但在 BIG xml 中,我会收到一个错误 Java 堆空间。

我知道 XML 的整个模式和内部标签的顺序,以及实际习惯于产生输出的人。因此,我想从整个 XML 中仅提取所需的 XML,并仅使用外部标签而不是带有 Data 的标签来完成所需的 XML。我已经用小数据测试了它的工作原理,但不确定如何从 Big FAT XML 中取出这些块。

不想增加JVM参数总是不必要的。

我有什么办法可以将这些小的 XML 块提供给实用程序吗? 任何人都可以分享他们的观点吗?

谢谢

【问题讨论】:

  • 不要对大型 XML 文件使用 DOM 解析器 - 使用 SAX 一个
  • @BorLaze,但是你认为他们可以给我带有标签的 XML 吗?我认为他们只公开 XML 标记的值。请纠正我..!
  • 可能是我第一次理解你的错误。说得对——你有大量的输入 XML,标签中有很多数据;但是您不需要全部,并且只想在发送到“第二个实用程序”之前只留下其中几个? IE。从 123 你想得到 2?
  • @BorLaze, 123 你想得到2 ....是
  • 我明白了。在这种情况下,您需要 XSLT 转换。你知道吗?

标签: java xml


【解决方案1】:

我怀疑 XSLT 处理器能否帮助您避免大型 XML 文件的问题。相反,我建议您应该使用 straming API,例如 StAX,它旨在在解析每个 XML 标记后立即处理它。

查看StreamFilter 示例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-19
    • 1970-01-01
    • 1970-01-01
    • 2020-12-31
    相关资源
    最近更新 更多