正如标题所说,我有一个巨大的 xml 文件 (GB)
<root>
<keep>
<stuff> ... </stuff>
<morestuff> ... </morestuff>
</keep>
<discard>
<stuff> ... </stuff>
<morestuff> ... </morestuff>
</discard>
</root>
我想把它变成一个更小的,只保留一些元素。
我的解析器应该执行以下操作:
1. 解析文件直到相关元素开始。
2. 将整个相关元素(带有子元素)复制到输出文件。转到 1。
第 1 步对于 SAX 很容易,而对于 DOM 解析器则不可能。
第 2 步对于 SAX 来说很烦人,但对于 DOM-Parser 或 XSLT 来说很容易。
那又怎样? - 是否有结合 SAX 和 DOM-Parser 来完成任务的巧妙方法?
最佳答案
StAX似乎是一个显而易见的解决方案:它是一个拉式解析器,而不是 SAX 的“推”或 DOM 的“缓冲整个事物”方法。不能说我用过它。 "StAX tutorial" search可能会派上用场:)
关于java - 如何在java中转换巨大的xml文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2773733/