Adding Attributes to all XML nodes

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • empiresolutions
    New Member
    • Apr 2006
    • 162

    Adding Attributes to all XML nodes

    Howdy,

    I have an PHP page that edits XML files. I want ADD a new *id* attribute to all nodes on the page that do not have it all ready. Then i want to delete all of the values of *id* and set them as an incremental 1-x values down the page.

    This is the current code i am using to edit specific nodes.
    [code=php]
    <?php
    $content = $_POST['content'];
    $id = $_POST['id'];
    $node = $_POST['node'];
    $explode = explode("_",$no de);

    $dom=new DOMDocument();
    $dom->load('sample.x ml');
    $dom->formatOutput = true;
    //echo $dom->saveXML(); // show before file
    $allnodes = $dom->getElementsByT agName($explode[0]);
    foreach ($allnodes as $nodes) {
    if ($nodes->nodeName==$exp lode[0] and $nodes->getAttribute(' id')==$id) { //
    $nodes->setAttribute($ explode[1],$content);
    }
    }
    $dom->save('sample.x ml');
    ?>
    [/code]

    This is the XML file im working with. NOTE the missing *id* node of the 2nd *child01* node.
    [code=xml]
    <?xml version="1.0" encoding="utf-8"?>
    <parent option01="other info" option02="other info" id="1">
    <child01 option01="child 01 option01" option02="child 01 option02" id="2">
    <child02 option01="child 02 option01" option02="child 02 option02" id="3">
    <text option01="text option01" option02="text option02" id="4">
    <![CDATA[<b>Ma quande lingues coalesce</b>]]>
    </text>
    <image option01="Li Europan lingues 01" option02="Li Europan lingues 02" id="5">image 1</image>
    <image option01="Li Europan lingues 01" option02="Li Europan lingues 02" id="6">image 2</image>
    </child02>
    <child02 option01="child 02 option01" option02="child 02 option02" id="7">
    <text option01="text option01" option02="text option02" id="8">
    <![CDATA[Lorem ipsum dolor sit amet.]]>
    </text>
    <image option01="Li Europan lingues 01" option02="Li Europan lingues 02" id="9">image 1</image>
    <image option01="Li Europan lingues 01" option02="Li Europan lingues 02" id="10">image 2</image>
    </child02>
    </child01>
    <child01 option01="child 01 option01" option02="child 01 option02">
    <child02 option01="child 02 option01" option02="child 02 option02">
    <text option01="text option01" option02="text option02">
    <![CDATA[Epsum factorial non deposit quid pro quo hic escorol.]]>
    </text>
    <image option01="Li Europan lingues 01" option02="Li Europan lingues 02">image 1</image>
    <image option01="Li Europan lingues 01" option02="Li Europan lingues 02">image 2</image>
    </child02>
    <child02 option01="child 02 option01" option02="child 02 option02">
    <text option01="text option01" option02="text option02">
    <![CDATA[Li Europan lingues es membres del sam familie.]]>
    </text>
    <image option01="Li Europan lingues 01" option02="Li Europan lingues 02">image 1</image>
    <image option01="Li Europan lingues 01" option02="Li Europan lingues 02">image 2</image>
    </child02>
    </child01>
    </parent>
    [/code]
    Last edited by Atli; Jan 18 '08, 08:59 PM. Reason: Changed [code] tags to [code=php] and [code=xml]
Working...