有没有办法在PHP中使用DOMDOCUMENT中的重复子元素?就我而言,结算和发货信息将始终相同。例如:
$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);
但是,在这种情况下,它会从“结算”中删除该元素,并仅将其保留在“运输”中。
答案 0 :(得分:4)
对您来说可能并不明显,但如果您将相同的元素附加到另一个父级,则会在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);
希望这有帮助。