Добавить узел в XML в PHP - PullRequest
0 голосов
/ 29 августа 2018

Я пытаюсь добавить узел в XML-файл.
я хочу добавить новый узел после «Я», как это

<NewNode>UN9TD72U</NewNode>  

Вот так выглядит мой xml-файл

<?xml version="1.0"?>
<GetProductCategories>
<GetProduct>
<Self>
<ProductCategoryId>1282779353</ProductCategoryId>
<ProductCategoryName>Shirt</ProductCategoryName>
<Parent>
<ProductCategoryId>8363437382</ProductCategoryId>
<ProductCategoryName>Sports tshirt</ProductCategoryName>
</Parent>
</Self>
</GetProduct>
</GetProductCategories> 

Мой Код :

$xml = simplexml_load_file("data.xml");
$child = $xml->addChild("NewNode");
$child->addAttribute("text","UN9TD72U");
$xml->asXML("data.xml");

Выход Я получаю

<?xml version="1.0"?>
<GetProductCategories>
<GetProduct>
<Self>
<ProductCategoryId>1282779353</ProductCategoryId>
<ProductCategoryName>Shirt</ProductCategoryName>
<Parent>
<ProductCategoryId>8363437382</ProductCategoryId>
<ProductCategoryName>Sports tshirt</ProductCategoryName>
</Parent>
</Self>
</GetProduct>
<NewNode text="UN9TD72U"/>
</GetProductCategories>

Ответы [ 2 ]

0 голосов
/ 29 августа 2018
$xml = simplexml_load_file("data.xml");
$child = $xml->GetProduct->addChild("NewNode", "UN9TD72U");
$xml->asXML("curlrequestcategories.xml");
0 голосов
/ 29 августа 2018

addChild() принимает второй параметр значения, поэтому вы можете написать:

$child = $xml->addChild("NewNode", "UN9TD72U");

Что касается добавления его внутрь <Self> (я полагаю, это то, что вы хотели?), Вы можете перейти внутрь каждого объекта в модели с помощью children():

http://php.net/manual/en/simplexmlelement.children.php

Редактировать : Как указано в комментариях Айнна (я забыл, что это сработало), вы также можете напрямую обращаться к дочерним элементам, таким как $xml->GetProduct->Self->addChild().


Итак, подведем итог:

$xml = simplexml_load_file("data.xml");
$xml->GetProduct->Self->addChild("NewNode", "UN9TD72U");
$xml->asXML("data.xml");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...