|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : janvier 2006 Messages : 19 ![]() |
Bonjour,
J'expose de suite mon problème. Je récupère un fichier XML valide. Ce fichier je le transforme avec un XSLT affichant un formulaire contenant les données du XML. Ce que j'aimerais, c'est modifier mon XML d'origine quand je modifie une valeur dans mon formulaire et que je le valide. J'ai essayé de faire une recherche sur les forums, il y a plein de choses qui peuvent sûrement m'aider mais je ne trouve rien qui correspond exactement à mon problème, et comme je débute en XML avec PHP (en XML tout court d'ailleurs), je suis un peu perdu dans toutes ces solutions. Néanmoins, j'ai l'impression que je suis obligé de créé un nouveau fichier XML avec mes nouvelles valeurs (et effacer l'ancien si nécessaire). Mais ça me parait bien lourd et fastidieux.... Merci par avance pour vos réponses ! |
|
|
00
|
|
|
#2 |
|
Membre chevronné
![]() Ingénieur développement logiciels Inscription : août 2003 Messages : 581 ![]() |
Bonjour,
quelle version de PHP utilises-tu ? PHP 5 ? Un fichier XML est un fichier texte. En utilisant un parser XML, tu auras des fonctions qui te permettrons de parcourir ton arbre XML, de le modifier, etc ... mais il faut bien voir que ce sera fait sur un objet chargé en mémoire (l'arbre XML) et non sur le fichier. Il faudra à un moment donné réécrire ton fichier XML (fichier texte) avec les modifications effectuées. Maintenant, je ne sais pas si il existe des fonctions pour ça, il est possible que ça existe et que ces opérations de "j'efface le fichier et je le réécris" soient transparentes pour l'utilisateur. J'espère que je ne t'ai pas trop embrouillé, Nako. |
|
|
00
|
|
|
#3 | ||
|
Invité de passage
![]() Inscription : janvier 2006 Messages : 19 ![]() |
Non ça ira :-)
Déjà, merci de la réponse. Alors j'utilise PHP5. J'ai regardé les fonction DOM et simpleXML mais bon.... j'ai déjà du mal à afficher 1 seule donnée. Donc du coup ce que j'avais pensé faire, techniquement : Je charge mon document XML, je trouve l'élément que je veux modifier dans l'objet, je modifie et je réécris le fichier XML d'après l'objet. En PHP vite fait (juste les fonctions DOM), ça donnerait en gros : Code :
Je suis dans le bon comm ça ? Sauf que j'arrive pas à récuperer l'élément. Et ça me parait toujours bien lourd si je dois faire ça pour chaque champs... |
||
|
|
00
|
|
|
#4 |
|
Membre chevronné
![]() Développeur Web Inscription : avril 2005 Messages : 726 ![]() |
Tu n'es pas obligé de le faire pour chaque champs, tu n'a qu'à charger ton fichier 1 fois, faire toutes tes modifs, et à la fin tu fait appel à la méthode save().
Ca ne devrait pas être si "lourd" que ça ^^ J'oubliais : si tu as du mal à récupérer tes éléments, mets toi à XPath... Ca te permet de récupérer des champs particuliers selon divers conditions (par exemple, si tu as plusieurs éléments <dossier> qui on un attributs id, tu peux faire $xPathQuery="//dossier[@id=lavaleurquetuveux]") |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : janvier 2006 Messages : 19 ![]() |
Merci,
Oui oui, je charge le document qu'une fois. Donc a priori je suis sur la bonne voie Pour XPath, je vais regardé ça aussi de plus près alors. Mais le problème c'est que les documents XML que je vais devoir traiter ne contiennent pas d'id. Mais y'a sûrement d'autres fonctions qui me seront utiles. Merci encore. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com