Hi Guys,
I want to insert a node with children at a specific location in the XML file. How do I do it?
For eg. If I have an XML like:
<myvalues>
<image name="img01">
<src>test</src>
</image>
<image name="img02">
<src>test</src>
</image>
<image name="img03">
<src>test</src>
</image>
</myvalues>
I want to insert:
<image name="img11">
<src>test2</src>
</image>
between <image name="img01">
& <image name="img02">
. How do I do this? I am using SimpleXML right now to read the XML.
Thanks.
EDIT: I tried the following code. But, the new node is added at the bottom of the XML outside the XML structure.
$xml = new DomDocument();
$xml->preserveWhitespace = false;
$xml->load('myXMLFile.xml');
$newNode = $xml->createElement('tryimage');
$xpath = new DOMXpath($xml);
$elements = $xpath->query('/myvalues/image[name="img01"]');
$refNode = $elements->item(0);
$xml->insertBefore($newNode, $refNode->nextSibling);
header('Content-Type: text/plain');
echo $xml->saveXML();
The output is something like this:
<xml....>
<myvalues>
<image name="01">
</image>
.
.
.
</myvalues>
<tryimage />