繁体   English   中英

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

[英]PHP 7.1 XML domDocument clone node with subnodes

我必须用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>

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

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

并附加在当前节点下

可以给一些提示

谢谢!

DOMDocument更cloneNode()处理此类事情,并且可以使用cloneNode()克隆节点, 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();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM