如何在PHP DomDocument中的子节点之前在父节点中插入文本


How to insert text in the parent node just before a child node in PHP DomDocument

我有这个XML:

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

我想做的是在<xref> 之前添加字母"N"

为此,我尝试使用DOMNode::insertBefore,但没有成功。

例如:

$refs = $paragraph->getElementsByTagName("xref");
foreach ($refs as $key=>$ref) {
   if ($key == 0) {
      $N = $dom_input->createTextNode("N");
      $citation->insertBefore($N);
   }
}

但是没有插入N文本节点。

提前感谢您的帮助。

我解决了这个问题。我犯了一个错误,代码应该看起来像:

if ($key == 0) {
    $squareBracket = $dom_input->createTextNode("[");
    $paragraph->insertBefore($squareBracket, $citation);
}