【问题标题】:SimpleXML vs DOMDocument with removing nodesSimpleXML vs DOMDocument 删除节点
【发布时间】:2017-01-20 07:16:22
【问题描述】:

除了 php 代码之外,我还有两个相同的网页。一种使用 SimpleXML,另一种使用 DOMDocument。代码编辑 xml 文件(读取、添加节点、删除节点)。

使用 SimpleXML 我必须使用以下方法删除节点:

unset($node);

但是,对于 DOMDocument,我使用:

$node->parentNode->removeChild($node)

虽然 SimpleXML 由于其简洁性而看起来很有利,但最终加载使用 SimpleXML 的页面需要额外的 0.4 秒(两个页面的 php 行数相同)。

这种性能差异背后的原因是什么?是 unset() 函数让它陷入困境吗?

【问题讨论】:

    标签: php xml performance simplexml domdocument


    【解决方案1】:

    SimpleXML 是对 DOM 实现本身使用的同一个 DOM XML 库的抽象。但它是用 C 实现的抽象。这意味着这里将出现 SimpleXML 更快的情况,因为它结合了 C 级别的多个操作,而其他情况则更慢,因为它只是添加了语法糖。

    如果您对 XML 进行大量操作,使用 XSLT 可能是更快的解决方案。

    就像您应该衡量和决定的所有优化一样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-27
      • 2013-11-09
      • 1970-01-01
      • 2011-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多