2011-01-08 59 views
0

我有一个HTML节点像这样的替换文本:PHP一个DOMElement,一个节点

<b>Bold text</b> 

变量$ EL包含一个DOMElement参考该HTML节点的文本(“粗体”),从得到XPath表达式// b /文本()

我想将元件切换到

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

所以,我试图:

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

由于parentNode为空而失败。所以,作为一个测试,我尝试过: $ el-> insertBefore($ span,$ el);

它不会引发错误,但不会产生输出变化。

有什么想法?

回答

1

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

+0

谢谢,我在php.net提交了一个bug,并且他们附加了SimpleXML文档以表明/ text()XPath查询不会以与其他查询相同的格式返回对象 – bcoughlan 2011-02-13 03:17:09