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/05/2006, 16h23   #1
Invité de passage
 
Inscription : juillet 2004
Messages : 6
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 6
Points : 3
Points : 3
Par défaut [DOM] Ajouter un noeud dans un noeud défini

Salut,

Dans un fichier xml déjà existant, je cherche à l'aide de PHP5 et de la libraire DOM à ajouter un nouveau noeud dans un noeud défini.

Le fichier xml.
Code XML :
1
2
3
4
5
6
<?xml version="1.0" encoding="ISO-8859-1"?>
<racine>
  <article>
    <commentaire>iuyiuyiuy</commentaire>
  </article>
</racine>
J'aimerais à l'aide d'un formulaire ajouter des commentaires et les stocker dans le fichier xml. Je veux donc ajouter à chaque validation du formulaire un nouveau noeud "commentaire" à la fin du noeud "article".

Résultat souhaité:
Code XML :
1
2
3
4
5
6
7
<?xml version="1.0" encoding="ISO-8859-1"?>
<racine>
  <article>
    <commentaire>iuyiuyiuy</commentaire>
    <commentaire>Nouveau commentaire</commentaire>
  </article>
</racine>
J'imagine que c'est le B.A BA mais je suis novice et cela fait bien des heures que je scrute les manuels, que je googolise, que je teste mais je ne comprends toujours pas, j'ai définivement besoin d'un coup de pouce.

Merci.
Hombre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2006, 16h50   #2
Expert Confirmé
 
Avatar de Eusebius
 
Inscription : avril 2003
Messages : 3 286
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 3 286
Points : 3 155
Points : 3 155
J'ai un tuto là-dessus qui est en cours de rédaction : http://eusebius.developpez.com/php5dom/

Jette un coup d'oeil, puis reposte si tu as des questions. La partie "rechercher un noeud en particulier" est déjà traitée dedans.
Eusebius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2006, 16h53   #3
Invité de passage
 
Inscription : juillet 2004
Messages : 6
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 6
Points : 3
Points : 3
Merci.

Je vais lire cela ce soir.
Hombre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2006, 18h55   #4
Invité de passage
 
Inscription : juillet 2004
Messages : 6
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 6
Points : 3
Points : 3
Bon je crois avoir réussi comme il faut, je te remercie encore ton tutoriel m'a aidé.

Voilà ce que j'ai fait:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
<?
$doc = new DomDocument();
$doc->load("test.xml");
 
$nodelist = $doc->getElementsByTagName('article');
 
$commentaire = $doc->createElement('commentaire',$_POST['commentaire']);
$nodelist->item(0)->appendChild($commentaire);
 
$doc->save('test.xml');
 
?>
Ca marche comme il faut mais y'a-t-il quelque chose à redire sur mon code ?

Un léger bémol, ça ne respecte pas l'indentation des balises :/

Code XML :
1
2
3
4
5
6
<?xml version="1.0" encoding="ISO-8859-1"?>
<racine>
  <article>
    <commentaire>iuyiuyiuy</commentaire>
  <commentaire>Je teste...</commentaire><commentaire>Je teste encore...</commentaire><commentaire>encore et toujours...</commentaire></article>
</racine>
J'aimerais un truc de ce genre:
Code XML :
1
2
3
4
5
6
7
8
9
<?xml version="1.0" encoding="ISO-8859-1"?>
<racine>
  <article>
    <commentaire>iuyiuyiuy</commentaire>
    <commentaire>Je teste...</commentaire>
    <commentaire>Je teste encore...</commentaire>
    <commentaire>encore et toujours...</commentaire>
  </article>
</racine>
Ce n'est pas grave mais bon j'aime le travail bien fait. Il y a quelquechose à faire pour régler ce problème ?
Hombre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2006, 19h00   #5
Expert Confirmé
 
Avatar de Eusebius
 
Inscription : avril 2003
Messages : 3 286
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 3 286
Points : 3 155
Points : 3 155
Citation:
Envoyé par Hombre
Ce n'est pas grave mais bon j'aime le travail bien fait. Il y a quelquechose à faire pour régler ce problème ?
Normalement ça devrait se formater comme il faut tout seul... A vue de nez je vois pas pourquoi ça marche pas.
Eusebius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2006, 19h28   #6
Invité de passage
 
Inscription : juillet 2004
Messages : 6
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 6
Points : 3
Points : 3
Après recherche il semble que ce soit normal avec cette librairie.
Il y'a des méthodes d'indentation avec XSLT, mais je ne maîtrise pas du tout cette technologie donc pour l'instant je vais en rester là
Hombre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2006, 19h32   #7
Expert Confirmé
 
Avatar de Eusebius
 
Inscription : avril 2003
Messages : 3 286
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 3 286
Points : 3 155
Points : 3 155
Citation:
Envoyé par Hombre
Après recherche il semble que ce soit normal avec cette librairie.
Tu peux me dire où tu as vu ça ? Ca m'intéresse, vu que chez moi j'ai pas ce souci en général.
Eusebius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2006, 19h37   #8
Invité de passage
 
Inscription : juillet 2004
Messages : 6
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 6
Points : 3
Points : 3
http://www.perfectxml.com/msxmlAnswers.asp?Row_ID=62
http://www.codecomments.com/archive3...-2-786394.html

C'est pas du PHP mais j'ai extrapolé.
Hombre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2006, 19h48   #9
Expert Confirmé
 
Avatar de Eusebius
 
Inscription : avril 2003
Messages : 3 286
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 3 286
Points : 3 155
Points : 3 155
C'est une particularité de MS XML, effectivement la distribution de PHP pour Windows doit s'appuyer dessus. Merci de l'info !
Eusebius est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h45.


 
 
 
 
Partenaires

Hébergement Web