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.
<?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>
Depuis un formulaire contenant le champs (matricule,nom,prenom et adresse) je poste les données
pour la sauvegarde dans le fichier xml.
$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
.
.
.
Lorsque j'ignore les lignes 28 et 30 et que j'affecte au noeuds enregistrement les enfants
(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.