Je découvre XMLREADER qui semble très efficace pour parser des flux XML.
En revanche, peu de doc accessibles sur le sujet...
Mon souci est le suivant.
Je reçois un flux XML du type :
Code : Tout sélectionner
<?xml version="1.0" encoding="iso-8859-1" ?>
<Disponibilite>
<element_disponible>
<elements_tarifaire>
<prix>470.22</prix>
<prix_ttc>471.22</prix_ttc>
<prix_hors_taxe>184</prix_hors_taxe>
<code_monetaire>EUR</code_monetaire>
<marchand>W4752</marchand>
</elements_tarifaire>
<detail_produit>
...........
</detail_produit>
<element_disponible>
<element_disponible>
...........
<element_disponible>
<Disponibilite>
De cet extrait, je ne veux récupérer que le contenu de "marchand". J'utilise donc le code suivant pour parser:
Code : Tout sélectionner
$reader = new XMLReader();
$reader->open("exemple.xml");
while( $reader->read() ) {
switch ($reader->nodeType) {
case (XMLREADER::ELEMENT):
switch( $reader->localName ) {
case "elements_tarifaire" :
$reader->read();
$reader->next();
$reader->next();
$reader->next();
$reader->next();
$reader->next();
$reader->next();
$reader->next();
$reader->next();
$reader->next();
$reader->read();
echo 'Valeur = ' . $reader->value . "<br>";
break;
}
}
}
Pas très élégant le $reader->next(); !!
N'y a t il pas un moyen plus académique de se positionner directement sur marchand ?
Je voulais utiliser $reader->moveToElement("marchand"); mais soit je ne l'utilise pas comme il faut ou ceci n'est pas adapter mais ça ne fonctionne pas.
Quelqu'un aurait un tuyau?
Merci,