|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Futur Membre du Club
![]() Inscription : juillet 2002 Messages : 51 ![]() |
Bonjour,
je souhaite modifier un noeud précis dans ma structure XML par l'intermédiaire d'un DOM en php. Je debute avec les dom et le XML, et je n'arrive pas à modifier juste un noeud. voici un bout de code xml: Code XML :
Vous pourriez m'aidé? mon début de code php : Code :
|
||||
|
|
00
|
|
|
#2 | ||
|
Membre actif
![]() |
Il faut utiliser les fonctions query() pour la requete xpath et appendChild() pour insérer l'élément. Ca doit donner qq chose comme ça :
Code :
|
||
|
|
00
|
|
|
#3 |
|
Membre actif
![]() |
Et pendant que j'y suis, ta requete xpath :
|
|
|
00
|
|
|
#4 | ||
|
Futur Membre du Club
![]() Inscription : juillet 2002 Messages : 51 ![]() |
j'ai bien fait ça, mais voici le message d'erreur qu'il me mets :
Fatal error: Call to a member function appendChild() on a non-object in /info.php5 on line 15 Je comprends donc bien que $parent n'est pas un objet de type DomDocument, mais contient le résultat de mon objet Xpath. Coment faire pour pouvoir insérer ma balise <panier> dans le noeud trouvé par ma fonction xpath? Meric à vous ! Code :
|
||
|
|
00
|
|
|
#5 |
|
Membre actif
![]() |
Je viens de tester le même code.
Au début il m'a sorti une double-erreur : la tienne + un problème d'encodage ( UTF-8 ). J'ai enregistré le fichier catalogue.xml en UTF-8 sous notepad et maintenant ça marche. |
|
|
00
|
|
|
#6 | ||||
|
Futur Membre du Club
![]() Inscription : juillet 2002 Messages : 51 ![]() |
je dois vraiment avoir un souci avec le XMl, car j'ai maintenant une nouvelle erreur :
Parse error: parse error, unexpected T_OBJECT_OPERATOR on ligne 11 Voici mes 2 fichier (xml) et php xml: Code XML :
PHP: Code :
|
||||
|
|
00
|
|
|
#7 |
|
Membre actif
![]() |
J'ai copié-collé ton code et ça marche.
C'est toujours un problème d'encodage je pense. Ouvre ton XML sous notepad, enregistrer sous, puis choisis "Codage : UTF8" au lieu de ANSI. |
|
|
00
|
|
|
#8 |
|
Futur Membre du Club
![]() Inscription : juillet 2002 Messages : 51 ![]() |
Ok ...... c'est samedi matin, je suis rentré à 23h du boulot hier, et je suis fatigue ......
j'avais oublié qu'avec mon hébergeur, pour que le fichier soit interpréter en php5, il fallait mettre l'extension php5. So.... je suis un peu n** mais bon....; merci en tout cas pour ton aide ! juste autre petite question, si je veux supprimer ce "panier" il suffit que je fasse un bout de code style Code :
$parent->item(0)->removeAttribute($panier); |
|
|
00
|
|
|
#9 |
|
Membre actif
![]() |
Non, un attribut, c'est par exemple ton "isbn".
Il faut utiliser removeChild(). Code :
$parent->item(0)->removeChild($panier); |
|
|
00
|
|
|
#10 | |||
|
Futur Membre du Club
![]() Inscription : juillet 2002 Messages : 51 ![]() |
décidement, mon remove child a du mal a passer.
Code :
Citation:
|
|||
|
|
00
|
|
|
#11 | ||
|
Membre actif
![]() |
C'est normal, removeChild() veut un noeud en argument.
Je te conseille de suivre les exemples que tu peux trouver sur http://php.net Pour removeChild(), on aurait quelque chose comme : Code :
|
||
|
|
00
|
|
|
#12 |
|
Invité de passage
![]() Inscription : avril 2006 Messages : 2 ![]() |
Bonjour à tous les deux,
Je reprend votre discussion un mois après en espérant que vous ou qqu'un d'autre pourra m'aider. Mon problème : je cherche à supprimer un élément complet. Pour utiliser l'exemple de titou250, je veux en plus de 'panier', supprimer le noeud parent complètement c-a-d <livre isbn="2" ...></livre> et tout son contenu bien sûr !! Ya comme qque chose qui m'échappe dans le DOM Fanx d'avance |
|
|
00
|
|
|
#13 | ||
|
Invité de passage
![]() Inscription : avril 2006 Messages : 2 ![]() |
Resalut
En fait mon pb est de remonter dans l'arborescence pour pointer sur le noeud parent de <painer/> Code :
Personne pour m'aider ?? |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com