我正在尝试使用PHP编辑一个大型XML文件(从Excel .xlsm文件中提取),我想知道哪个是最好的(关于性能):QueryPath或PHP的DOMDocument?
文件重量至少为8 MB,包含大约400k行(格式化时)。
感谢您的反馈
答案 0 :(得分:2)
QueryPath基本上只是DOMDocument
的包装器。它为裸DOMDocument
对象增加了相对较少的开销。对于访问和编写操作(例如attr()
,append()
等),应该没有值得注意的性能差异。
但接下来是大问题:找东西。
传统上,遍历DOMDocument
是通过“走树”或使用DOMNode->getElementsByTagname()
来完成的。如果您愿意编写代码,这会预先形成。
使用QueryPath 2.x进行查询对于大小合适的文档来说会很慢,除非您使用非常具体的选择器(例如':root> foo> bar> baz')。
但是,查询大型对象时,即将进入Alpha1的QueryPath 3.x要快很多倍。执行qp('foo')
和XPath一样快......这让我想到了最后一个选项。
然后还有内置的XPath处理器,它还附带了PHP的libxml支持。如果您正在执行大型XML文档,这可能会为您提供更好的性能,因为它以C速度而不是PHP速度执行。但是你必须编写XPath表达式,这是(恕我直言)有点痛苦。
所以底线: