大佬教程收集整理的这篇文章主要介绍了insertBefore()与PHP DOM无法正常工作,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
<p>Second paragraph</p> <p>First paragraph</p> <p>Third paragraph</p>
我想用PHP DOM重新排列元素,把它变成这样的东西:
<p>First paragraph</p> <p>Second paragraph</p> <p>Third paragraph</p>
我尝试使用以下代码执行此操作:
$html = "<p>Second paragraph</p><p>First paragraph</p><p>Third paragraph</p>"; $dom = new domDocument; $dom->loadHTML( $html ); $dom->getElementsByTagName('p')->item(1)->insertBefore($dom->getElementsByTagName('p')->item(0));
但是当我使用时:
echo $dom->getElementsByTagName('p')->item(0)->nodeValue;
我明白了:
First paragraphSecond paragraph
结果,所以我想我在这里做错了.
public DOMNode DOMNode::insertBefore ( DOMNode $newnode [,DOMNode $refnode ] ) refnode The reference node. If not supplied,newnode is appended to the children.
因此,由于您未指定引用节点,因此它会将其附加到子节点.您的代码将生成此HTML:
<html> <body> <p>First paragraph<p>Second paragraph</p></p> <p>Third paragraph</p> </body> </html>
你需要做的是在parentNode上执行insertBefore,参考第二段,如下所示:
$nodes = $dom->getElementsByTagName('p'); $nodes->item(0)->parentNode->insertBefore($nodes->item(1),$nodes->item(0)); echo $dom->saveHTML();
输出:
<html> <body> <p>First paragraph</p> <p>Second paragraph</p> <p>Third paragraph</p> </body> </html>
以上是大佬教程为你收集整理的insertBefore()与PHP DOM无法正常工作全部内容,希望文章能够帮你解决insertBefore()与PHP DOM无法正常工作所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。