Bonjour;
J'ai le message d'erreur Fatal error: Call to a member function appendChild()
on a non-object in C:\wamp\www\newsxml.php on line 30
lorsque Je veux ajouter un enregistrement dans le fichier xml suivant via DOM en php.
Depuis un formulaire contenant le champs (matricule,nom,prenom et adresse) je poste les données
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32<?xml version="1.0" standalone="yes"?> <!DOCTYPE Base[ <!ELEMENT Base (conseiller)> <!ELEMENT conseiller (enregistrement)> <!ATTLIST conseiller id ID #REQUIRED> <!ELEMENT enregistrement (nom,prenom,adresse)> <!ATTLIST enregistrement date CDATA #REQUIRED> <!ATTLIST enregistrement matricule CDATA #REQUIRED> <!ELEMENT nom (#PCDATA)> <!ELEMENT prenom (#PCDATA)> <!ELEMENT adresse (#PCDATA)> ]> <Base> <conseiller id="Econseiller"> <enregistrement date="01/10/2006" matricule="03"> <nom>NOM1</nom> <prenom>PRENOM1</prenom> <adresse>Ad1</adresse> </enregistrement> <enregistrement date="30/09/2006" matricule="02"> <nom>NOM2</nom> <prenom>PRENOM2</prenom> <adresse>Ad2</adresse> </enregistrement> </conseiller> </Base>
pour la sauvegarde dans le fichier xml.
Lorsque j'ignore les lignes 28 et 30 et que j'affecte au noeuds enregistrement les enfants
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 $file="c:\test.xml"; $dom=new DOMDocument(); if(file_exists($file) && filesize($file)>0) $dom->load($file); $nom=$_POST['nom']; $prenom=$_POST['prenom']; $adresse=$_POST['adresse']; $conseiller=$dom->getElementById("Econseiller"); // ligne 28 $enregistrement=$dom->createElement("enregistrement"); // ligne 29 $enregistrement=$conseiller->appendChild($enregistrement); // ligne 30 . . .
(nom,prenom et adresse) la sauvegarde se fait dans le fichier xml mais dans le noeuds Base.
Ligne 28: j'ai aussi essayé de charger le noeuds conseiller avec getElementsByTagName idem.
merci d'avance pour votre aide.
Partager