0

我正在尝试使用 PHP 编辑一个大型 XML 文件(从 Excel .xlsm 文件中提取),我想知道哪个是最好的(关于性能):QueryPath 还是 PHP 的 DOMDocument?

该文件的大小至少为 8 MB,并且包含大约 400k 行(格式化时)。

感谢您的反馈

4

1 回答 1

2

QueryPath 基本上只是一个DOMDocument. DOMDocument它为裸对象增加了相对较少的开销。对于访问和写入操作——比如attr(),append()等,应该没有显着的性能差异。

但随之而来的是一个大问题:寻找东西。

传统上,遍历 aDOMDocument是通过“走树”或使用DOMNode->getElementsByTagname(). 如果您愿意编写代码,这会相对较好。

除非您使用非常特定的选择器(例如 ':root>foo>bar>baz'),否则使用 QueryPath 2.x 进行查询在这样大小的文档上会有点慢。

但是,即将进入 Alpha1 的 QueryPath 3.x 在查询大对象时要快很多很多倍。执行qp('foo')速度与 XPath 一样快……这让我想到了最后一个选项。

然后是内置的 XPath 处理器,它也带有 PHP 的 libxml 支持。如果您正在处理大型 XML 文档,这可能会给您带来更好的性能,因为它是以 C 速度而不是 PHP 速度执行的。但是您将不得不编写 XPath 表达式,这(恕我直言)有点痛苦。

所以底线:

  • 基础知识:任何一个都可以。
  • 修改:任何一个都可以。
  • 大量穿越:
    • DOMDocument 会让你手动遍历。
    • QueryPath 2.x 很慢
    • QueryPath 3.x 更快
    • XPath 最快……但它是 XPath
于 2012-05-23T00:52:52.377 回答