我有一个非常基本的例子:
<div><span>Lorem ipsum dolor sit amet, elit</span>consectetur adipiscing</div>
我想取代单词&#34; dolor&#34; to&#34; some_another_word&#34;当它在标记<div>...</div>
周围时。 &#34; dolor&#34;单词可以放在div
的内部和外部
我目前的代码是下一个:
$html = '<div><span>Lorem ipsum dolor sit amet, elit</span>consectetur adipiscing</div>';
$docs = new \DOMDocument();
$docs->loadHTML( $html );
$els = $docs->getElementsByTagName('*');
foreach ( $els as $node ) {
if ( 'div' === $node->nodeName ) {
$node->textContent = str_replace('dolor', 'some_another_word', $node->textContent);
}
}
var_dump( $docs->saveHTML() );
我的代码的结果是:
<html><body><div>Lorem ipsum some_another_word sit amet, elit consectetur adipiscing</div></body></html>
我正在丢失我需要的span
标签。我该如何预防?
答案 0 :(得分:0)
如果正确制作查询,您可以使用 return new byte[0];
表达式来准确定位您希望操作的内容。以下内容应该说明如何应用这个想法。
XPath