Добавьте ребенка к xml с PHP simpleXml

у меня есть проблема с simpleXml и добавлением новых объектов. Это - мой xml:

<?xml version="1.0" encoding="utf-8"?>
<root>
  <items>               
    <item>abc</item>
    <item>def</item>
    <item>ghi</item>
</items>
</root>

Я использую этот php код:

$xml = simplexml_load_file("myxml.xml");
$sxe = new SimpleXMLElement($xml->asXML());
$newItem = $sxe->addChild("items");
$newItem->addChild("item", $newValue);
$sxe->asXML("myxml.xml"); 

Это - результат:

<?xml version="1.0" encoding="utf-8"?>
    <root>
      <items>               
        <item>abc</item>
        <item>def</item>
        <item>ghi</item>
      </items>
      <items>
        <item>jkl</item>
      </items>
    </root>

Это создает меня новый узел объектов, но я хочу уже, добавляет объект к тому же существующий узел объектов.

7
задан Josh Crozier 8 December 2013 в 04:51
поделиться

2 ответа

тогда не следует создавать новые элементы node:

$xml = simplexml_load_file("myxml.xml");
$sxe = new SimpleXMLElement($xml->asXML());
$itemsNode = $sxe->items[0];
$itemsNode->addChild("item", $newValue);
$sxe->asXML("myxml.xml"); 
10
ответ дан 7 December 2019 в 01:15
поделиться

Вы пробовали сделать следующее

$newItem->root->items[0]->addChild("item","Test");

или

$newItem->root->items->addChild("item","Test");
0
ответ дан 7 December 2019 в 01:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: