Bonjour,

J'ai un souci en utilisant le perseur XML de PHP.

Imaginons que j'ai un fichier XML qui ressemble à ca :

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>
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
 
 <3>blibli</3>
 <4>blabla</4>
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);
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
function GetData($parser, $data)
{
	switch ($currentElement)
	{
		case '2' : echo $data; break;
	}
}
Dans ce cas, $data est vide... Y a t'il y moyen d'obtenir ce que je veux avec ce genre de méthode ?