views:

23

answers:

2

Hello,

i have problem with simpleXml and adding new items. This is my xml:

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

Im using this php code:

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

This is the result:

<?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>

This creates me new items node, but i want add item to the same already existing items node.

+2  A: 

then, you should not create new items node:

$xml = simplexml_load_file("myxml.xml");
$sxe = new SimpleXMLElement($xml->asXML());
$itemsNode = $sxe->items[0];
$itemsNode->addChild("item", $newValue);
$sxe->asXML("myxml.xml"); 
kgb
thank you very very very much :)
A: 

Have you tried doing the following way

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

Or

$newItem->root->items->addChild("item","Test");
RobertPitt