Bonjour,
J'ai un souci en utilisant le perseur XML de PHP.
Imaginons que j'ai un fichier XML qui ressemble à ca :
Je souhaiterais, lorsque j'arrive dans la balise <2>, recupérer le contenu comme suit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <1> <2> <3>blibli</3> <4>blabla</4> </2> </1>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <3>blibli</3> <4>blabla</4>pour récupérer les données, j'ai essayer ca (la variable $currentElement corremond au nom de la balise que j'ai récupérer dans StartElement):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 $fichier = fopen('fichier.xml','r'); $parser = xml_parser_create(); xml_set_object ($parser, $this); xml_set_element_handler($parser, "StartElement", "EndElement"); xml_set_character_data_handler($parser, "GetData"); while ($data = fread($fichier, 4096)) { if (!xml_parse($parser, $data, feof($fichier))) die(sprintf("XML error: %s at line %d", xml_error_string(xml_get_error_code($parser)), xml_get_current_line_number($parser))); } xml_parser_free($parser); fclose($fichier);
Dans ce cas, $data est vide... Y a t'il y moyen d'obtenir ce que je veux avec ce genre de méthode ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 function GetData($parser, $data) { switch ($currentElement) { case '2' : echo $data; break; } }
Partager