Bonjour,
Je suis en train de développer un code qui permet d'extraire des données de fichiers XML générés par des logiciels de gestion de bibliographie (JabRef, Endnote etc...).
Le problème c'est que pour "parser" les données du fichier xml par la méthode simplexml_load_file(), il me faut avoir en première ligne du fichier XML :
Certains gestionnaires de biblio (tel que EndNote) ne permettent pas d'insérer cette première ligne dans les fichiers XML.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2<?xml version="1.0" encoding="utf-8" ?>
Donc je le fais via une petite routine avant de traiter le fichier par la fonction simplexml :
J'obtiens après exécution le message d'erreur suivant :
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 <? //Apres avoir récupérer par le biais d'un formulaire le fichier XML $FileTemp = $_FILES['FileXML']['tmp_name']; $entete = "<?xml version=\"1.0\" encoding=\"utf-8\"?".">\n"; $contenu = file_get_contents($FileTemp); $contenu = $entete.$contenu; $fichier = fopen($FileTemp,"w+"); fwrite($fichier,$contenu); fclose($fichier); @copy($FileTemp,"base.xml"); $File = simplexml_load_file("base.xml"); foreach($File->.....
Par contre si je construis moi même le fichier base.xml en rajoutant la première ligne (<?xml version="1.0" encoding="utf-8"?>)... je n'ai aucun problème : tout se fait normalement !!Warning: simplexml_load_file(): base.xml:1: parser error : Start tag expected, '<' not found in C:\Program Files\wamp\www\database\PostXML.php on line 37
Warning: simplexml_load_file(): <?xml version="1.0" encoding="utf-8"?>ï..........
Pourtant mes deux fichiers sont identiques : l'insertion de la première ligne via le programme marche très bien...
La seule différence, c'est que dans un cas je le fais manuellement et que dans l'autre je le fais faire par le programme...
Quelqu'un aurait il une idée ? C'est un problème de conversion, de réécriture du fichier par fwrite() ?
Bref là je sèche...
Merci,
Bonne journée,
Bruno
Partager