1

有没有办法在 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);

但是,在这种情况下,它会从 Billing 中删除该元素并仅将其保留在 Shipping 中。

4

1 回答 1

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

希望这可以帮助。

于 2013-09-27T16:45:49.813 回答