Adding Attributes to all XML Nodes

Discussion in 'XML' started by cesarcesar, Jan 21, 2008.

  1. cesarcesar

    cesarcesar Guest

    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. Im trying
    to use DOM, but it doesn't have to be. I just need it to work.
    Code:
    <?php
    $content = $_POST['content'];
    $id = $_POST['id'];
    $node = $_POST['node'];
    $explode = explode("_",$node);
    
    $dom=new DOMDocument();
    $dom->load('sample.xml');
    $dom->formatOutput = true;
    //echo $dom->saveXML(); // show before file
    $allnodes = $dom->getElementsByTagName($explode[0]);
    foreach ($allnodes as $nodes) {
        if ($nodes->nodeName==$explode[0] and $nodes->getAttribute('id')==
    $id) { //
            $nodes->setAttribute($explode[1],$content);
        }
    }
    $dom->save('sample.xml');
    ?>
     
    This is the XML file im working with. **NOTE** the missing *id*
    attributes of the 2nd *child01* node.
    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <parent option01="other info" option02="other info" id="1">
        <child01 option01="child01 option01" option02="child01 option02"
    id="2">
            <child02 option01="child02 option01" option02="child02
    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="child02 option01" option02="child02
    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="child01 option01" option02="child01 option02">
            <child02 option01="child02 option01" option02="child02
    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="child02 option01" option02="child02
    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>
     
    cesarcesar, Jan 21, 2008
    #1
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. gavnosis
    Replies:
    0
    Views:
    500
    gavnosis
    Aug 2, 2003
  2. Al Hatch
    Replies:
    3
    Views:
    960
    Johannes Koch
    Jun 5, 2006
  3. th3dude
    Replies:
    0
    Views:
    424
    th3dude
    Jan 3, 2007
  4. luckyads
    Replies:
    0
    Views:
    554
    luckyads
    Jan 21, 2009
  5. luckyads
    Replies:
    0
    Views:
    425
    luckyads
    Jan 22, 2009
Loading...

Share This Page