0

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

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

这是解析和提取它的最有效方法。

Xpath 会很快吗?

4

2 回答 2

0

XPath 在如此大的文档上可能会非常慢。使用流解析器 (SAX/StAX) 并随时随地提取所需信息可能会更好。

于 2013-02-22T08:38:04.407 回答
0

您需要对像这样的大文件使用某种流式处理方法,最简单的方法取决于 XML 的结构。如果它由许多可以独立处理的片段组成,例如

<rows>
  <row>
    <col name="col1">value1</col>
    <col name="col2">value2</col>
  </row>
  <!-- and another million row elements -->
</rows>

然后有我称之为“半流式”的方式来流式传输文件解析一个row,处理它,然后将其丢弃并解析下一个等。使用XOM(查找“自定义节点工厂”)或 JAXB(定义一个表示 one 的对象模型row,然后在您的文档上创建一个 XMLStreamReader 并一次解组一行)。

于 2013-02-22T08:52:54.413 回答