PHP中的SimpleXML;将节点替换为文本节点

PHP中的SimpleXML;将节点替换为文本节点,php,replace,simplexml,Php,Replace,Simplexml,给定此XML/XHTML片段: <h1> <zuq:data name="siteHeader" /> </h1> <h2> <zuq:data name="pageHeaderName" /> <span>&mdash;</span> <zuq:data name="pageHeaderTitle" /> </h2> &mdash; 我使用

给定此XML/XHTML片段:

<h1>
    <zuq:data name="siteHeader" />
</h1>

<h2>
    <zuq:data name="pageHeaderName" />
    <span>&mdash;</span>
    <zuq:data name="pageHeaderTitle" />
</h2>

&mdash;
我使用了SimpleXML的XPath方法来汇总
zuq
命名空间中的所有顶级节点。由于
xpath()
方法的数组元素是对
SimpleXML
对象树节点的伪引用,因此我认为操作会很容易。但是,我不知道如何用文本节点替换给定的元素节点。例如,我如何将
替换为文本
我的站点标题

我考虑过简单地将目标定位到父节点并修改它的内容,就像第一个块(
)一样,但考虑到我的第二个块(
)的情况,我看不到这一点


有没有一种简单的方法可以通过PHP中的
SimpleXML
将给定的元素节点替换为文本节点?

快速查看文档,我也找不到一种简单的方法。我会尝试迭代原始xml文档,并将每个元素复制到一个新的xml文档中,根据需要修改它们。

据我所知,simplexml没有删除或替换节点的功能。它更多地用于阅读、创建和与结构无关的编辑。您必须使用DOM XML对象来完全替换节点。这有点像simplexml的更复杂版本。请在此处阅读:


嗯,那肯定会很麻烦。既然我还没有写过一大堆关于使用
SimpleXML
的逻辑,那么探索PHP XML文档遍历/操作的其他选项是否明智呢?您可能想了解xsl转换,它非常强大,而且您的xpath内容正好适合于此:感谢Abdullah Jibaly;XSLT可能是我在项目的另一个方面需要的东西,但是DOM似乎适合这种情况。它只是提供了我需要的更多编程功能。好的,谢谢dqhendricks。根据PHP文档,从5.0.0开始,DOM XML似乎已经从PHP核心中删除,并移到了PECL中。其他DOM类应该更全面,不是吗?看来你是对的。在这种情况下,参考:再次感谢dqhendricks;DOM似乎提供了必要的功能,尽管有更多的词法开销。