Добавление элемента в несколько раз в DOMDocument

Есть ли способ использовать повторяющиеся дочерние элементы в DOMDOCUMENT в 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); 

Однако в этом случае он удаляет элемент из Billing и оставляет его только в Shipping.

Solutions Collecting From Web of "Добавление элемента в несколько раз в DOMDocument"

Это может быть не очевидно для вас, но если вы добавите один и тот же элемент другому родительскому элементу, он будет перемещен в DOMDocument .

Это можно легко предотвратить, используя созданный элемент FullName в качестве прототипа и клонировать его для операции добавления:

 $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); 

Надеюсь это поможет.