DOM & XML : modifier un noeud existant avec xpath ?
Posté : 10 juin 2010, 20:09
Bonjour à tous et toutes,
Après 2 jours de recherches infructueuses, je me permets de solliciter votre aide pour modifier un fichier .xml avec DOM et php5.
Ce que je souhaite faire :
modifier le contenu d'un noeud existant
modifier la valeur d'un attribut donné
Voici un exemple de structure de fichier .xml utilisé :
1. Changer la valeur de "remixers" de l'item ayant l'id 27 et la ref 7 de la playlist ayant l'id="1"
2. Changer la valeur de l'attribut "style" de la playlist ayant l'id 2
Je ne souhaite pas qu'on me développe mon script mais si vous pouviez m'aiguiller je vous en serais reconnaissant.
Je reste à votre disposition si vous avez des questions ou si vous n'avez pas compris ma demande.
Je repasserai sur le forum après mon boulot vers 19h demain.
Merci déjà, bonne soirée.
Après 2 jours de recherches infructueuses, je me permets de solliciter votre aide pour modifier un fichier .xml avec DOM et php5.
Ce que je souhaite faire :
Voici un exemple de structure de fichier .xml utilisé :
<?xml version="1.0" encoding="utf-8"?>
<playlists user="62" username="admin" >
<playlist user="62" id="1" active="1" name="ma playlist 1" style="99" styleTitle="Electro" created="1264895420" lastmod="1276189978" >
<item id="65" ref="18" style="18" styleTitle="" parent="17" order="1" >
<image>deadmau5_some_chords.jpg </image>
<artist>Deadmau5 </artist>
<remixers>remixers </remixers>
<title>Some Chords </title>
<remix_title>(Original mix)2 </remix_title>
<editor>Editor </editor>
<timer>7:27 </timer>
<link1> </link1>
<link2> </link2>
<link3> </link3>
<link4> </link4>
</item>
<item id="27" ref="7" style="18" styleTitle="" parent="0" order="2" >
<image>Moderat_Rusty_Nails.jpg </image>
<artist>Moderat </artist>
<remixers>remixers </remixers>
<title>Rusty Nails </title>
<remix_title>(Original mix)1 </remix_title>
<editor>Editor </editor>
<timer>5:50 </timer>
<link1> </link1>
<link2>link2 </link2>
<link3>link3 </link3>
<link4>http://www.youtube.com/watch?v=DoxUiqUpkw4 </link4>
</item>
<item id="56" ref="17" style="17" styleTitle="" parent="0" order="3" >
<image>vitalic-flashmob.jpg </image>
<artist>Vitalic </artist>
<remixers> </remixers>
<title>Seconds Lives </title>
<remix_title>d </remix_title>
<editor>Citizen Records </editor>
<timer> </timer>
<link1>http://itunes.apple.com/be/album/second-lives/id329484983?i=329484995 </link1>
<link2>ID beatPort </link2>
<link3>ID regie 3 </link3>
<link4>ID regie 4 </link4>
</item>
<item id="68" ref="20" style="18" styleTitle="" parent="17" order="4" >
<image>mr_blink_gecko.jpg </image>
<artist>Mr Blink </artist>
<remixers> </remixers>
<title>Gecko </title>
<remix_title> </remix_title>
<editor>Fly Eye Records </editor>
<timer> </timer>
<link1> </link1>
<link2> </link2>
<link3> </link3>
<link4> </link4>
</item>
<item id="52" ref="17" style="17" styleTitle="" parent="0" order="5" >
<image>vitalic-flashmob.jpg </image>
<artist>Vitalic </artist>
<remixers> </remixers>
<title>Poison Lips </title>
<remix_title>d </remix_title>
<editor>Citizen Records </editor>
<timer>s </timer>
<link1>http://itunes.apple.com/be/album/poison-lips/id329484983?i=329484987 </link1>
<link2>ID beatPort </link2>
<link3>ID regie 3 </link3>
<link4>ID regie 4 </link4>
</item>
<item id="25" ref="6" style="16" styleTitle="" parent="15" order="6" >
<image>kamui.jpg </image>
<artist>Kamui </artist>
<remixers> </remixers>
<title>Thrill Kill (Asys Remix) </title>
<remix_title> </remix_title>
<editor>Fe-Records </editor>
<timer>s </timer>
<link1> </link1>
<link2> </link2>
<link3> </link3>
<link4> </link4>
</item>
<item id="13" ref="5" style="30" styleTitle="" parent="17" order="7" >
<image>depeche-mode-sounds-of-the-universe.jpg </image>
<artist>Depeche Mode </artist>
<remixers> </remixers>
<title>Wrong </title>
<remix_title> </remix_title>
<editor>Mute Records </editor>
<timer> </timer>
<link1> </link1>
<link2> </link2>
<link3> </link3>
<link4>http://www.youtube.com/watch?v=xJYD8VVilIE </link4>
</item>
<item id="29" ref="8" style="26" styleTitle="" parent="0" order="8" >
<image>Noisecontrollers_yellow_minute.jpg </image>
<artist>Noisecontrollers </artist>
<remixers> </remixers>
<title>Yellow Minute (original mix) </title>
<remix_title> </remix_title>
<editor>Fusion records </editor>
<timer> </timer>
<link1> </link1>
<link2> </link2>
<link3> </link3>
<link4> </link4>
</item>
<item id="66" ref="19" style="18" styleTitle="" parent="17" order="9" >
<image>diplo-tiesto_cmon.jpg </image>
<artist>Diplo, Tiesto </artist>
<remixers> </remixers>
<title>C'mon </title>
<remix_title> </remix_title>
<editor>Musical Freedom </editor>
<timer>msc_timer </timer>
<link1> </link1>
<link2> </link2>
<link3> </link3>
<link4> </link4>
</item>
<item id="41" ref="13" style="21" styleTitle="HardTechno" parent="20" order="10" >
<image>palmtop_128x128.png </image>
<artist>Artist </artist>
<remixers> </remixers>
<title>Title</title>
<remix_title> </remix_title>
<editor>snif </editor>
<timer> </timer>
<link1>ID iTunes </link1>
<link2>ID beatPort </link2>
<link3>ID regie 3 </link3>
<link4>msc_idlink4 </link4>
</item>
</playlist>
<playlist user="62" id="2" active="0" name="ma playlist 2" style="17" styleTitle="Electro" created="1264895420" lastmod="1274895420" >
<item id="27" ref="7" style="18" styleTitle="" parent="0" order="1" >
<image>Moderat_Rusty_Nails.jpg </image>
<artist>Moderat </artist>
<remixers>remixers </remixers>
<title>Rusty Nails </title>
<remix_title>(Original mix) </remix_title>
<editor>Editor </editor>
<timer>5:50 </timer>
<link1> </link1>
<link2>link2 </link2>
<link3>link3 </link3>
<link4>http://www.youtube.com/watch?v=DoxUiqUpkw4 </link4>
</item>
</playlist>
</playlists>
Exemples concrets de modifications souhaitéés :1. Changer la valeur de "remixers" de l'item ayant l'id 27 et la ref 7 de la playlist ayant l'id="1"
2. Changer la valeur de l'attribut "style" de la playlist ayant l'id 2
Je ne souhaite pas qu'on me développe mon script mais si vous pouviez m'aiguiller je vous en serais reconnaissant.
Je reste à votre disposition si vous avez des questions ou si vous n'avez pas compris ma demande.
Je repasserai sur le forum après mon boulot vers 19h demain.
Merci déjà, bonne soirée.