Slt,
j'utilise le code suivant pour parser un fichier XML (code trouvé ici)
ca marche tres bien, sauf quand mon XML contient des \n,
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 <?php $file = "donnees.xml"; $depth = array(); function debutElement($parser, $name, $attrs) { global $depth; for ($i = 0; $i < $depth[$parser]; $i++) { echo "  "; } echo "$name<br>"; $depth[$parser]++; } function MemoTexte($parseur, $texte){ for ($i = 0; $i < $depth[$parser]; $i++) { echo "  "; } echo "$texte<br>"; } function finElement($parser, $name) { global $depth; $depth[$parser]--; for ($i = 0; $i < $depth[$parser]; $i++) { echo "  "; } echo "$name<br>"; } $xml_parser = xml_parser_create(); xml_set_element_handler($xml_parser, "debutElement", "finElement"); xml_set_character_data_handler($xml_parser, "MemoTexte"); if (!($fp = fopen($file, "r"))) { die("Impossible d'ouvrir le fichier XML"); } while ($data = fread($fp, 4096)) { if (!xml_parse($xml_parser, $data, feof($fp))) { die(sprintf("erreur XML : %s à la ligne %d", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser))); } } xml_parser_free($xml_parser); ?>
exemple de fichier XML :
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <document> <content> <test> <nom>ALPHA</nom> <resultat>OK</resultat> </test> <test> <nom>BETA</nom> <resultat> Cette ligne n'apparait pas :( BAD</resultat> </test> </content> </document>
Que se passe il à votre avis ?
sur le 2nd element, j'ai que le "BAD" qui est affiché
Partager