DOM文档中附加一个元素多次(Appending an Element multiple times

2019-10-18 16:54发布

有没有办法使用DOM文档中重复子元素在PHP的方法吗? 在我的情况下,结算和航运信息将始终是相同的。 例如:

$fullname = "John Doe";
$xml = new DOMDocument();
$xml_billing = $xml->createElement("Billing");
$xml_shipping = $xml->createElement("Shipping");
$xml_fullname = $xml->createElement("FullName");
$xml_fullname->nodeValue = $fullname;
$xml_billing->appendChild($xml_fullname);
$xml_shipping->appendChild($xml_fullname);

然而,在这种情况下,它会从开票元素并让它只在航运。

Answer 1:

它可能不适合你明显,但如果你追加相同的元素到另一个父它是在一个到处移动DOMDocument

您可以防止容易因使用创建的全名元素为原型并克隆它的附加操作:

$xml_billing->appendChild(clone $xml_fullname);
$xml_shipping->appendChild(clone $xml_fullname);

然后,这确实是你所试图实现,如果我读了你的问题的权利。


而另一个提示,我只是看到它:下面两行:

$xml_fullname = $xml->createElement("FullName");
$xml_fullname->nodeValue = $fullname;

你可以写为一个:

$xml_fullname = $xml->createElement("FullName", $fullname);

希望这可以帮助。



文章来源: Appending an Element multiple times in DOMDocument