我正在尝试使用 PHP 编辑一个大型 XML 文件(从 Excel .xlsm 文件中提取),我想知道哪个是最好的(关于性能):QueryPath 还是 PHP 的 DOMDocument?
该文件的大小至少为 8 MB,并且包含大约 400k 行(格式化时)。
感谢您的反馈
我正在尝试使用 PHP 编辑一个大型 XML 文件(从 Excel .xlsm 文件中提取),我想知道哪个是最好的(关于性能):QueryPath 还是 PHP 的 DOMDocument?
该文件的大小至少为 8 MB,并且包含大约 400k 行(格式化时)。
感谢您的反馈
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 表达式,这(恕我直言)有点痛苦。
所以底线: