flux xml parcours et récupération des valeurs
voilà, j'ai un flux xml qui fait plusieurs 100Mo je ne connais pas la structure exacte.
Je veux pouvoir parcourir l'ensemble des champs à partir de produit.
1/Je ne connais le niveau d'imbrication ==> premier problème de mon code suivant car je ne reste qu'à un niveau en dessous de produit.
2/je n'arrive pas à afficher le contenu du champ
j'ai essayé différente façon, différentes recherche google.
avec nodevalue, value, ...
Mais dans le pire des cas je n'ai plus aucun affichage et au mieux il reste comme celui en cours sans l'ajout de ce point.
Avez-vous une idée ou solution.
J'utilise xml reader et simplexml pour ne pas surcharger le traitement du flux qui se fait quotidiennement et dont je ne connais la taille et la structure.
Merci
prod.xml
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
<?xml version="1.0" encoding="iso-8859-1" ?>
<disponibilite>
<produit>
<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>
</produit>
<produit>
<elements_tarifaire>
<prix>100.00</prix>
<prix_ttc>1000.00</prix_ttc>
<prix_hors_taxe>100.00</prix_hors_taxe>
<code_monetaire>EUR</code_monetaire>
<marchand>K100</marchand>
</elements_tarifaire>
</produit>
</disponibilite> |
analyse.php
Code:
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
|
<?php
$xml = new XMLReader();
$xml->open("prod.xml");
while($xml->read()){
if ($xml->nodeType == XMLReader::ELEMENT && $xml->localName == "produit") {
$sejour = $xml->expand();
$sejour = new SimpleXMLElement("<produit>".$xml->readInnerXML()."</produit>");
foreach ($sejour->children() as $child )
{
echo $child->getName() . " = ";
echo "<br>";
}
echo "<BR>";
}
}
?> |