insertBefore()在PHP DOM中无法正常工作
我有这样的结构:insertBefore()在PHP DOM中无法正常工作,php,html,dom,Php,Html,Dom,我有这样的结构: <p>Second paragraph</p> <p>First paragraph</p> <p>Third paragraph</p> 我得到: First paragraphSecond paragraph 因此,我猜我在这里做错了什么。如果我回显所有有效的文档:来自: 因此,由于您没有指定引用节点,因此它将其附加到子节点。您的代码将生成以下HTML: <html> <body&
<p>Second paragraph</p>
<p>First paragraph</p>
<p>Third paragraph</p>
我得到:
First paragraphSecond paragraph
因此,我猜我在这里做错了什么。如果我回显所有有效的文档:来自: 因此,由于您没有指定引用节点,因此它将其附加到子节点。您的代码将生成以下HTML:
<html>
<body>
<p>First paragraph<p>Second paragraph</p></p>
<p>Third paragraph</p>
</body>
</html>
输出:
<html>
<body>
<p>First paragraph</p>
<p>Second paragraph</p>
<p>Third paragraph</p>
</body>
</html>
第一段
第二段
第三段
它“起作用”,但根本不能生成有效的HTML。
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>
<body>
<p>First paragraph<p>Second paragraph</p></p>
<p>Third paragraph</p>
</body>
</html>
$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>