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.
Expand|Select|Wrap|Line Numbers
- <?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');
- ?>
Expand|Select|Wrap|Line Numbers
- <?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>