如何在特定节点后插入TextNode


How to insert TextNode after a specific node.

我有一段话:

<p>
   This is a test <xref>1</xref> in the XML <xref>2</xref> bla bla bla....
</p>

我想在xref节点之后插入]

为此,我使用以下代码:

$refs = $paragraph->getElementsByTagName("xref");
foreach ($refs as $key=>$ref) {
   $squareBracket = $dom_input->createTextNode("]");
   $paragraph->appendChild($squareBracket);
}

但这是在段落末尾添加]

除了在后面插入之外,还有什么函数作为insertBefore吗?

我发现了如何做到这一点:

$squareBracket = $dom_input->createTextNode("]");
$paragraph->insertBefore($squareBracket, $ref->nextSibling);

我们必须在选定的节点上使用nextSibling。