Xml et php

Résolu
djbabou Messages postés 155 Date d'inscription dimanche 21 octobre 2007 Statut Membre Dernière intervention 23 novembre 2015 - 7 févr. 2011 à 20:38
djbabou Messages postés 155 Date d'inscription dimanche 21 octobre 2007 Statut Membre Dernière intervention 23 novembre 2015 - 9 févr. 2011 à 16:59
Bonjour a tous...

Après avoir fait le tour de pas mal de site, j'ai une question que je me pose quand à l'utilisation de simplexml. Si j'ai bien compris, simplexml est censé juste parser, et donc on ne peut pas définir un nœuds xml à partir duquel on va modifier son fichier !

En fait j'utilise cette méthode ainsi pour modifier un xml, et lui ajouter un nœuds :
if(isset($_POST['xml4']))
{
$root = simplexml_load_file("xml/gastronomie.xml");
$account = $root->addChild("Image");
$account->addAttribute("url","".$url."");
$account->addAttribute("thumbs","images/thumbs/".$photo1."");
$account->addchild("ButtonText","<![CDATA[SUPPORT SWF ]]>");
$account->addChild("WaitTime","3");
$root->asXml("xml/gastronomie.xml");
}
Sa me rajoute bien ma ligne dans mon xml! Malheureusement, je me rends compte qu'il me la rajoute après mon nœuds parent qui est nommé Images.
Voila la structure de mon xml :

<?xml version="1.0" encoding= "utf-8"?>


<RandomTransition>true</RandomTransition>
VerticalBar|Cube3D|HorizontalStore|LeftRightBlur|MosaicVerticalCube|RightLeftBlur|VerticalBar|VerticalStore|VerticalStretch|HorizontalStretch|Spiral|SquareTurn|Dot|Paint|Alpha
true
<TimerOnClick>5</TimerOnClick>
<MenuPosition>right</MenuPosition>
<Fullscreen>true</Fullscreen>
230
407
<Randomize>false</Randomize>
<ShowButton>false</ShowButton>
true
true
<ShowWaitLine>false</ShowWaitLine>
<KeepOriginalSize>false</KeepOriginalSize>

0x000000

<ResizeToFit>false</ResizeToFit>
140
43
0xffffff
0x000000
0xF45353
0xffffff
0x951C1D
center
15
false



<![CDATA[SUPPORT SWF ]]>
<WaitTime>3</WaitTime>
<Click url ="homard.php" target="_parent"/>




Comment donc pourrai-je rajouter mon nœuds dans Images et non pas à l'extérieur de celui ci ?J'espère que je me suis fait comprendre.

Dans l'attente d'une éventuelle réponse, mais d'or et déjà merci d'avance pour vos réponses ...

2 réponses

TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
7 févr. 2011 à 23:53
Salut,

Comment donc pourrai-je rajouter mon nœuds dans Images et non pas à l'extérieur de celui ci ?J'espère que je me suis fait comprendre.

Regarde donc déjà pourquoi c'est ajouté à la racine :
$account = $root->addChild("Image");

Poru changer c'est très simple, au lieux de faire le addChild sur la racine il faut le faire sur l'élément de ton choix. Donc en gros il te faudrait faire l'ajout sur $root->Images si j'ai bien compris.
3
djbabou Messages postés 155 Date d'inscription dimanche 21 octobre 2007 Statut Membre Dernière intervention 23 novembre 2015
9 févr. 2011 à 16:59
Exact,

En remplaçant :
$account = $root->addChild("Image");

par :
$account = $root->Images;
$account = $root->Images->addChild("Image");

j'ai bien mon nœuds qui s'ajoute juste avant la fermeture de la balise Images, donc comme je le veux.

Je te remercie grandement.
0
Rejoignez-nous