Добавить узел в XML перед сохранением

как добавить узел XML <TypeId>HDU5K3KDI23F</TypeId> в «Верхний» узел переменной XML перед сохранением.
XML-данные, которые я получаю, поступают из API в качестве ответа.
Когда я использую приведенный ниже код, данные ответов xml сохраняются, но узел «Typeid» не сохраняется в этом файле.

        <GetCategories>
<GetProduct>
<Data>
<Id>87772873</Id>
<Name>Foods and Beverages</Name>
<Top>
<CategoryId>028392323</CategoryId>
<CategoryName>Categories</CategoryName>
</Top>
</Data>
</GetProduct>
</GetCategories>
        $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);

0

Решение

Измените код в foreach следующим образом:
Сначала создайте элемент со значением и добавьте его к своим данным.

foreach ($Xpath->evaluate('/GetCategories/GetProduct/Data/Top[1]') as $data)
{
$type = $dom->createElement('TypeId', 'HDU5K3KDI23F');
$data->appendChild($type);
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]