PHP DOMElement,替换节点的文本

时间:2011-01-08 21:33:23

标签: php dom

我有一个像这样的HTML节点:

<b>Bold text</b>

变量$ el包含对该HTML节点文本的DOMElement引用(“粗体文本”),来自XPath表达式// b / text()

我想将元素更改为

<b><span>Bold Text</span></b>

所以我试过了:

$span = $doc->createElement('span', "Bold Text");
$el->parentNode->replaceChild($span,, $el)

失败,因为parentNode为null。

所以,作为测试,我试过:     $ el-&gt; insertBefore($ span,$ el);

不抛出任何错误,但输出没有变化。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

使用// b / text()的DOMXPath-&gt; query()应该返回一个DOMNodeList。使用item()方法获取项目。它应该是一个DOMText,它是一个DOMNode,而parentNode不应该为null。