如何在较大的文件中读取xml中的值并将其映射到java

时间:2013-02-22 08:36:37

标签: xml

我有一个xml,我需要从中提取值并在数据库中更新它。

xml非常大可能是1GB或更多。

解析它并将其解压缩的最有效方法。

Xpath会快吗?

2 个答案:

答案 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并一次解组一行)。