java - 如何在java中转换巨大的xml文件?

标签 java xml parsing

正如标题所说,我有一个巨大的 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/

相关文章:

java - 将 Apache HttpComponents 用于 https 请求 : "peer not authenticated" and "handshake_failure" errors

c# - 解析十进制数

java - JTabbedPane如何判断用户离开的tab?

java - Facebook 个人资料图片未显示在导航标题中?

c++ - 如何最好地保存 XML 文件

xml - 通过 Xquery 将 XML 中的数据转换为文本

java - XSLT 2.0 和 JDeveloper 11g

c++ - 从 C++ 评估脚本表达式

c - 如何安全解析制表符分隔的字符串?

java - 找不到符号 Java