PHP 7.1 XML domDocument用子节点克隆节点



我必须用PHP和DomDocument解决这个问题(simplexml也可以(。我在谷歌上搜索了很多,但没有找到一个正确的例子来学习如何做:

我有以下易趣XML

<?xml version="1.0" encoding="utf-8"?>
<ReviseInventoryStatusRequest xmlns="urn:ebay:apis:eBLBaseComponents">
<RequesterCredentials>
<eBayAuthToken>INSERT_TOKEN</eBayAuthToken>
</RequesterCredentials>
<InventoryStatus>
<ItemID> ItemIDType (string) </ItemID>
<Quantity> int </Quantity>
<SKU> SKUType (string) </SKU>
<StartPrice> AmountType (double) </StartPrice>
</InventoryStatus>
<ErrorLanguage>en-US</ErrorLanguage>
<Version> string </Version>
<WarningLevel>Low</WarningLevel>
</ReviseInventoryStatusRequest>

我需要克隆(实际上是4次(<InventoryStatus>节点及其所有子节点:

<InventoryStatus>
<ItemID> ItemIDType (string) </ItemID>
<Quantity> int </Quantity>
<SKU> SKUType (string) </SKU>
<StartPrice> AmountType (double) </StartPrice>
</InventoryStatus>

并在当前节点下附加

请给一些提示

谢谢!

DOMDocument更擅长处理这样的事情,并且可以使用cloneNode()克隆节点,通过true进行深度克隆,也可以复制内容。然后,您可以将节点添加回需要的位置…

$dom = new DOMDocument();
$dom->load("data.xml");
$is = $dom->getElementsByTagName("InventoryStatus");
$dom->documentElement->appendChild($is[0]->cloneNode(true));
$dom->documentElement->appendChild($is[0]->cloneNode(true));
$dom->documentElement->appendChild($is[0]->cloneNode(true));
$dom->documentElement->appendChild($is[0]->cloneNode(true));
echo $dom->saveXML();

相关内容

  • 没有找到相关文章

最新更新