保存前将节点添加到XML
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了保存前将节点添加到XML相关的知识,希望对你有一定的参考价值。
如何在保存之前将xml节点<TypeId>HDU5K3KDI23F</TypeId>
添加到XML变量的“Top”节点。
我得到的XML数据来自API作为响应。
当我使用下面的代码时,xml响应数据会被保存,但'Typeid'节点没有保存在该文件中。
XML Response Data looks like this
<GetCategories>
<GetProduct>
<Data>
<Id>87772873</Id>
<Name>Foods and Beverages</Name>
<Top>
<CategoryId>028392323</CategoryId>
<CategoryName>Categories</CategoryName>
</Top>
</Data>
</GetProduct>
</GetCategories>
Code
$dom = new DOMDocument;
$dom->loadXML($response->toXML());
$dom->preserveWhiteSpace = FALSE;
$Xpath = new DOMXpath($dom);
foreach ($Xpath->evaluate('/GetCategories/GetProduct/Data/Top[1]') as $data)
{
$type = $data->appendChild($dom->createElement('TypeId'));
$type->appendChild($dom->createTextNode('HDU5K3KDI23F'));
}
$dom->formatOutput = TRUE;
$xmldata = $dom->saveXML();
echo $xmldata;
$myfile = file_put_contents('data.xml', $xmldata.php_EOL , FILE_APPEND | LOCK_EX);
答案
更改foreach中的代码,如下所示:首先使用value创建元素并附加到数据中。
foreach ($Xpath->evaluate('/GetCategories/GetProduct/Data/Top[1]') as $data)
{
$type = $dom->createElement('TypeId', 'HDU5K3KDI23F');
$data->appendChild($type);
}
以上是关于保存前将节点添加到XML的主要内容,如果未能解决你的问题,请参考以下文章