Bonjour,
J'utilise simplexml pour entrer les réponses d'un formulaire pdf (fait avec livecycle) vers une base de donnée MySQL.
Le problème est lorsqu'un champs n'est pas remplit, le fichier xml qui est créé ressemble à ça (dans le cas du téléphone pas renseigné) :
Code :
- <?xml version="1.0" encoding="UTF-8"?>
- <formulaire>
- <Prenom>Mon prénom</Prenom>
- </Telephone>
- <code_postal>mon code postal</code_postal>
- <Pseudo>mon pseudo</Pseudo>
- </formulaire>
|
La forme "</Telephone>" alors qu'aucune balise n'a été ouverte ne plait pas à simple xml, j'aurais aimé savoir comment ignoré ces balises. J'ai bien l'astuce de rendre tous les champs obligatoire à la création du formulaire en leur donnant une valeur par défaut " " mais c'est vraiment une bidouille qui ne me plait pas trop.
La ligne qui pose le problème est lors du chargement du fichier: simplexml_load_file($xmlstr);
L'erreur :
Code :
- Warning: simplexml_load_file() [function.simplexml-load-file]: file:///C:/Program%20Files/wamp/tmp/php19.tmp:4: parser error : Opening and ending tag mismatch: racine line 2 and telephone in C:\Program Files\wamp\www\PDFatMySQL\traitement_pdf.php on line 16
|
Qui se répercute sur le reste du fichier :
Code :
- Warning: simplexml_load_file() [function.simplexml-load-file]: <code_postal>mon code postal</code_postal> in C:\Program Files\wamp\www\PDFatMySQL\traitement_pdf.php on line 16
|
Une partie de la source php :
Code :
- //Chargement du fichier XML
- if (file_exists($xmlstr)) {
- $xml = simplexml_load_file($xmlstr);
- } else {
- exit('Echec lors de l\'ouverture du fichier');
- }
- //Récupération des variables
- $Nom = $xml->Nom;
|
Merci à ceux qui pourront m'aider.
Message édité par PM95 le 18-02-2009 à 17:10:54