Bonjour,
Je vous explique mon problème, j'ai une première page php, dans laquelle il y a un formulaire, dans lequel une personne va entrer des informations, et aussi je génère un id, et j'envoie le tout à une deuxième page php, qui va stocker les informations reçues avec le id dans un fichier xml "resultats.xml", puis affiche aussi un autre formulaire, dans lequel des questions sont posés à l'utilisateur. Ces réponses sont envoyées à une troisième page php, avec encore une fois le même id. Dans cette troisième page, j'essaye d'ajouter ces réponses, dans le fichier xml, dans la balise résultat qui a comme id, celui envoyé à cette troisième page, pour que ces réponses soient ajoutés avec les informations de la même personne. sauf que j'ai un problème avec la requête XPATH.
La structure de mon fichier XML est la suivante:
Bien évidemment à cause du problème dont je vous ai parlé, je n'arrive pas à ajouter les balises <cv> .
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<?xml version="1.0" encoding="UTF-8"?> <resultats> <resultat/> <id>1</id> <nom>nom</nom> <age>1830</age> <vue>oui</vue> <tvue>myopie</tvue> <cv1>true</cv1> <cv2>true</cv2> <cv3>true</cv3> <cv4>true</cv4> <cv5>true</cv5> <cv6>true</cv6> </resultats>
Maintenant le code que j'utilise, dans lequel il y a ma requête XPATH:
Ça c'est la première partie du code, après quelques traitements, je crée un élément puis je l'ajoute dans le fichier XML, à la variable $eval :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 $dom = new DomDocument(); $dom->preserveWhiteSpace = FALSE; $dom->formatOutput = TRUE; $dom->load('resultats.xml'); $xpath = new DomXPath($dom); $id = $_POST['id']; $res = $xpath->query('/resultats/resultat[id = "' . $id . '"]'); $eval = $res->item(0);
Résultat, un message d'erreur :
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 $q1 = $dom->createElement('cv1', $r1); $q2 = $dom->createElement('cv2', $r2); $q3 = $dom->createElement('cv3', $r3); $q4 = $dom->createElement('cv4', $r4); $q5 = $dom->createElement('cv5', $r5); $q6 = $dom->createElement('cv6', $r6); $eval->appendChild($q1); $eval->appendChild($q2); $eval->appendChild($q3); $eval->appendChild($q4); $eval->appendChild($q5); $eval->appendChild($q6); $dom->save('resultats.xml');
La ligne qui cause l'erreur est celle ou je fais le appendChild ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part Fatal error: Call to a member function appendChild() on a non-object in C:\Users\MoW\Documents\IND6412\Tp2\test2.php
Pouvez vous m'aider à régler ce problème SVP?
Merci.
...
Partager