我有一个xml,我需要从中提取值并在数据库中更新它。
xml非常大可能是1GB或更多。
解析它并将其解压缩的最有效方法。
Xpath会快吗?
答案 0 :(得分:0)
XPath在这么大的文档上可能会非常慢。使用流解析器(SAX / StAX)并在旅途中提取所需信息可能会更好。
答案 1 :(得分:0)
您需要对大型文件使用某种流式处理方法,最简单的方法取决于XML的结构。如果它由许多可以独立处理的片段组成,例如
<rows>
<row>
<col name="col1">value1</col>
<col name="col2">value2</col>
</row>
<!-- and another million row elements -->
</rows>
然后我称之为“半流式”方式来流式传输文件解析一个row
,处理它,然后将其丢弃并使用XOM之类的工具解析下一个等等(查找“自定义节点工厂”)或JAXB(定义代表一个row
的对象模型,然后在文档上创建XMLStreamReader并一次解组一行)。