Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > XML > DOM
DOM Forum d'entraide pour l'extension DOM permettant de manipuler des documents XML en PHP 5 (approche DOM). Avant de poster -> tutoriels DOM
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/03/2006, 11h17   #1
Membre éclairé
 
Inscription : janvier 2004
Messages : 423
Détails du profil
Informations personnelles :
Âge : 39
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2004
Messages : 423
Points : 308
Points : 308
Par défaut [DOM] Ajout de noeuds

Bonjour,

j'ai un fichier XML existant, et je voudrais y ajouter un noeud a un emplacement donné du fichier...

J'ai le Xpath du noeud :

/tourPkg/itinerary/accomodation/choice/hotel/facilities/roomType/model/exceptions/specialOccupancy

Et le noeud en question, celui a rajouter...


Code XML :
1
2
3
4
5
6
7
8
9
<specialOccupancy code="AAA" matchPriority="1">
    <sales>
        <charge invoiceItemCode="PRX-RED-3ADU"/>
    </sales>
    <guestCounts>
        <total/>
        <ageGroup countStd="3" code="adult"/>
    </guestCounts>
</specialOccupancy>


Bon, Avec SimpleXML, il semblerait qu'on ne puisse pas ajouter de noeud dans le document... Donc je m'oriente vers DOM.. mais ca n'est pas encore très documenté ! loin de la !

Pourriez vous me donner quelques pistes ? Merci !
zevince est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2006, 13h39   #2
Membre actif
 
Avatar de ghostdogpr
 
Étudiant
Inscription : octobre 2003
Messages : 198
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2003
Messages : 198
Points : 195
Points : 195
Envoyer un message via MSN à ghostdogpr Envoyer un message via Skype™ à ghostdogpr
Salut,

En effet SimpleXML ne permet pas de faires ajouts et tu peux passer par DOM.

Il te faudra utiliser les fonctions suivantes (tu trouveras des exemples pour chaque sur http://php.net ) :

Créer l'arbre DOM et la requete xpath :
Code :
1
2
3
4
5
6
$dom = new DomDocument();
$xpath = new DomXPath($dom);
 
$dom->load(...);
 
$parent = $xpath->query(...);
Créer l'élément à insérer:

Code :
$dom->createElement(...);
puis insérer l'élément avec :
Code :
$parent->item(0)->appendChild(...);
ou
Code :
$parent->item(0)->insertBefore(...);
puis tu peux remettre le xml dans une chaine:
Code :
1
2
// Put the XML in a string
$fin = $dom->saveXML();
Voila, tu devrais pouvoir t'en sortir
ghostdogpr est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h33.


 
 
 
 
Partenaires

Hébergement Web