For Programmers: Free Programming Magazines  


Home > Archive > PHP Programming > August 2005 > modify xml file php script









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

Author modify xml file php script
jp.delatorre@gmail.com

2005-08-31, 3:57 am

how to create script that modify xml file

sample xml file:

<root>
<parent name="a" id="1">
<child name="a.a" id="1.1" />
<child name="a.b" id="1.2" />
<child name="a.c" id="1.3" />
</parent>
<parent name="b" id="2">
<child name="b.a" id="2.1" />
</parent>
<parent name="c" id="3">
<child name="c.a" id="3.1" />
<child name="c.b" id="3.2" />
</parent>
</root>

php script should be able to modify the xml file. it should be able to
insert a parent element say between parent A and parent B. the id of
the new parent element should be parent B with its child respectively.
the parent elements below the new element should adjust the ids. in the
example above, parent B id should be 3 and its child id should be 3.1.
same goes to parent C and its childs.
result would be:
<root>
<parent name="a" id="1">
<child name="a.a" id="1.1" />
<child name="a.b" id="1.2" />
<child name="a.c" id="1.3" />
</parent>
<parent name="newparent" id="2">
<child name="newparent.a" id="2.1" />
<child name="newparent.b" id="2.2" />
</parent>
<parent name="b" id="3">
<child name="b.a" id="3.1" />
</parent>
<parent name="c" id="4">
<child name="c.a" id="4.1" />
<child name="c.b" id="4.2" />
</parent>
</root>

any comments on this...

Wolfgang Forstmeier

2005-08-31, 3:57 am

Hi,

DOM should be your friend, for Documentation read this:

http://de2.php.net/manual/en/ref.dom.php

Have fun ..

Wolfgang

jp.delatorre@gmail.com wrote:
> how to create script that modify xml file
>
> sample xml file:
>
> <root>
> <parent name="a" id="1">
> <child name="a.a" id="1.1" />
> <child name="a.b" id="1.2" />
> <child name="a.c" id="1.3" />
> </parent>
> <parent name="b" id="2">
> <child name="b.a" id="2.1" />
> </parent>
> <parent name="c" id="3">
> <child name="c.a" id="3.1" />
> <child name="c.b" id="3.2" />
> </parent>
> </root>
>
> php script should be able to modify the xml file. it should be able to
> insert a parent element say between parent A and parent B. the id of
> the new parent element should be parent B with its child respectively.
> the parent elements below the new element should adjust the ids. in the
> example above, parent B id should be 3 and its child id should be 3.1.
> same goes to parent C and its childs.
> result would be:
> <root>
> <parent name="a" id="1">
> <child name="a.a" id="1.1" />
> <child name="a.b" id="1.2" />
> <child name="a.c" id="1.3" />
> </parent>
> <parent name="newparent" id="2">
> <child name="newparent.a" id="2.1" />
> <child name="newparent.b" id="2.2" />
> </parent>
> <parent name="b" id="3">
> <child name="b.a" id="3.1" />
> </parent>
> <parent name="c" id="4">
> <child name="c.a" id="4.1" />
> <child name="c.b" id="4.2" />
> </parent>
> </root>
>
> any comments on this...
>

dem0o8

2005-08-31, 3:57 am

actually, im more concern about the logic behind of the script. how do
you make the id update in cascading manner. anyway, thanks for the reply

Wolfgang Forstmeier

2005-08-31, 3:57 am

Hm ..

this maybe an answer but there could be better solutions that my one :-)

<?php

// ... fetch your id with DOM

$id_array = explode(".", $id);

// id[0] == first number of ID
// id[1] == second number of ID
// count up second one

id[1]++;

// connect id that you have back x.x

$id = implode(".",$id[0].$id[1]);

// write id back to XML (using DOM) ...

?>

dem0o8 wrote:
> actually, im more concern about the logic behind of the script. how do
> you make the id update in cascading manner. anyway, thanks for the reply
>

dem0o8

2005-08-31, 6:56 pm

i guess that will work for me though i haven't tried it yet. thanks a
lot wolfgang.

Sponsored Links







Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive

Copyright 2010 codecomments.com