我必须使用PHP和DomDocument解决此问题(也可以使用simplexml)。 我已经在Google上搜索了很多,但没有找到正确的示例来学习操作方法:
我有以下eBay 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>
我需要克隆<InventoryStatus>
节点及其所有子节点(实际上是4次):
<InventoryStatus>
<ItemID> ItemIDType (string) </ItemID>
<Quantity> int </Quantity>
<SKU> SKUType (string) </SKU>
<StartPrice> AmountType (double) </StartPrice>
</InventoryStatus>
并在当前节点的正下方添加
能不能给一些提示
谢谢!
答案 0 :(得分:1)
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();