La meilleure méthode pour modifier un xml? - PHP - Programmation
Marsh Posté le 18-07-2006 à 11:05:16
Pour modifier un fichier xml, le plus simple, c'est encore d'utiliser les fonctions de chargement/modification d'un fichier xml :
http://fr3.php.net/manual/fr/ref.xml.php
http://fr3.php.net/manual/fr/ref.simplexml.php
http://fr3.php.net/manual/fr/ref.domxml.php
Personellement, j'ai tendance à utiliser les deux derniers groupes de fonction en fonction de mes besoins.
Marsh Posté le 18-07-2006 à 11:09:24
Merci pour cette réponse ultra-rapide, apparement, PHP ne le fait pas en natif, il faut installer un truc un plus...
Okay, je vais m'y atteler!
Marsh Posté le 18-07-2006 à 11:38:24
SimpleXml est activé par défaut sur PHP5, tout comme DOM ( tout court et pas DOM XML qui est un peu deprecated).
Marsh Posté le 18-07-2006 à 14:19:47
Je viens de trouver autre chose là... J'ouvre le xml, j'atteins la dernière ligne et je l'efface pour rajouter le nouvel "objet"
C'est mieux ou faut vraiment que je change la méthode, parce que j'ai regardé les liens qui m'ont été donné et je n'ai pas trop trouvé mon bonheur...
Marsh Posté le 18-07-2006 à 14:31:31
_sammm a écrit : Je viens de trouver autre chose là... J'ouvre le xml, j'atteins la dernière ligne et je l'efface pour rajouter le nouvel "objet" |
ça dépend la structure de ton xml, mais comme ça, j'aurais tendance à dire que c'est n'importe quoi.
Si tu as le xml suivant:
|
Et que tu souhaites rajouter un élève, ta méthode ne risque pas de fonctionner
Que tu l'as conseillé omega2, utilise le DOM ou simpleXML, il y en a vraiment pour 2 secondes.
Marsh Posté le 18-07-2006 à 14:40:11
J'utilise simplexml pour lire le fichier, y'a pas de problème, mais je vois pas comment l'utiliser pour rajouter un objet ou en modifier un... à part en réecrivant tout...
Mais sinon, mon xml ne sera toujours avec une arbo du genre
<test>
<test1>
<a></a>
<b></b>
</test2>
</test>
Mais si tu peux, si tu as le temps, m'expliquer comment tu ferais ça, ça m'aiderait beaucoup... parce que j'ai eu beau chercher sur php.net, ça me parle pas trop...
Marsh Posté le 18-07-2006 à 14:52:41
hum, je crois que j'ai trouvé un truc 'achement intéressant... je vais approfondir la piste...
merci du coup de main, je reviendrais ptet poser une ou deux questions
Marsh Posté le 18-07-2006 à 14:53:22
_sammm > Moi aussi, j'utilise SimpleXML pour lire un fichier. De mémoire, la derniére fois que j'ai du passer d'une lecture simple à une lecture/écriture d'un fichier xml, j'ai juste utilisé la fonction de transformation d'un élément simpleXML en élément DOM et utilisé ensuite les fonctions dom pour la partie écriture.
Marsh Posté le 18-07-2006 à 14:56:34
hoho, ça m'aide pas mal ce que tu me dis là... je vais jeter un coup à ce truc là aussi...
En tous cas, que de réactivité!
Marsh Posté le 19-07-2006 à 11:00:01
C'est good! J'ai réussi ce que je voulais faire! Merci pour votre aide
Par contre, juste pour la mise en page, ça me met tous mes objets nouvellement créés en ligne sans retour...
Marsh Posté le 19-07-2006 à 11:03:35
rajoute un element br au endroit ou tu veux un retour à la ligne ou mieux style tes elements via css
Marsh Posté le 19-07-2006 à 11:12:20
ReplyMarsh Posté le 19-07-2006 à 11:22:04
_sammm a écrit : Je me suis mal exprimé, c'est dans le fichier xml que ça me met tout en ligne. |
Nan nan c'est moi qui ait mal lu la question
Si tu as un objet dom, tu peux lui préciser de formater la sortie:
Code :
|
Marsh Posté le 19-07-2006 à 11:37:32
ça marche quand on lit un fichier, mais pas quand on le loade et qu'on écrit dessus.
bizarre, je vais essayé de trouver quelque chose sur php.net
Marsh Posté le 24-07-2006 à 16:31:58
J'ai rien trouvé sur "comment qu'on fait pour écrire proprement le code dans un fichier xml"...
Personne n'a d'idée svp?
Merci!
Marsh Posté le 18-07-2006 à 11:00:23
Bonjour à tous,
Je suis en train de faire un site en PHP/XML, mais voici que je me trouve confronté à un problème :
Comment bien faire pour modifier un fichier xml?
J'ai tenté un truc, c'est-à-dire, lire le fichier, et tout réécrire avec en plus mon objet en plus, ce qui je trouve, n'est pas très correct au niveau de la méthode...
Avez-vous d'autres solutions?
Merci beaucoup!