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