Bonjour,
J'ai un petit problème de compréhension avec DOMDocument.
J'ai un xml que je dois parser pour y récupérer les infos contenus et les mettre en forme dans une page PHP.
N'y connaissant rien en XML (ou plus ou moins pas grand chose) j'ai fais le tour des forums et je n'ai pas trouvé de réponse à mes questions.
Voici le XML :
Le PHP :
Ma première question (en espérant qu'il n'y en ait pas d'autre) est comment lire uniquement le résultat de $product pour stocker les infos dans un array?
Ma première idée a été de faire un if mais à partir de la je ne sais pas lire les info contenu dans les variables...
PS: avant de poster cette question j'ai été faire un tour sur une bonne dizaine de site, donc essayez de ne pas me renvoyer vers php.net par exemple. Merci
Modifié par genesis (03 Jan 2012 - 12:47)
J'ai un petit problème de compréhension avec DOMDocument.
J'ai un xml que je dois parser pour y récupérer les infos contenus et les mettre en forme dans une page PHP.
N'y connaissant rien en XML (ou plus ou moins pas grand chose) j'ai fais le tour des forums et je n'ai pas trouvé de réponse à mes questions.
Voici le XML :
<eligibility_response version="2.0">
<product code="SDSL">
<features>
<info>
<status code="0000"/>
<nb_copper_pairs>1</nb_copper_pairs>
<garanty>640 Kb ATM</garanty>
<burst>2048 Kb ATM</burst>
<messages>
<message code="4024" type="alert"/>
<message code="4008" type="alert"/>
</messages>
</info>
<operator>FT</operator>
<profile>Lien SDSL T500 1P FT</profile>
</features>
<features>
<info>
<status code="0000"/>
<nb_copper_pairs>1</nb_copper_pairs>
<garanty>1280 Kb ATM</garanty>
<burst>2048 Kb ATM</burst>
<messages>
<message code="4024" type="alert"/>
<message code="4008" type="alert"/>
</messages>
</info>
<operator>FT</operator>
<profile>Lien SDSL T1000 1P FT</profile>
</features>
</product>
<product code="ADSL">
<features>
<info>
<status code="0003"/>
<messages>
<message code="9999" type="error"/>
<message code="3021" type="reason"/>
</messages>
</info>
<operator>FT</operator>
<profile>Lien ADSL 512Kb RE FT</profile>
</features>
<features>
<info>
<status code="0002"/>
<messages>
<message code="9999" type="error"/>
</messages>
</info>
<operator>FT</operator>
<profile>Lien ADSL 512Kb FT</profile>
</features>
</product>
</eligibility_response>
Le PHP :
$doc_AL = new DomDocument();
$doc_AL->load('0149819891.xml'); //fichier en local pour les tests mais au final se sera une URL externe
$res= $doc_AL->getElementsByTagName("product");
foreach($res as $product){
if ($product->getAttribute("code") == "SDSL"){
}
}
Ma première question (en espérant qu'il n'y en ait pas d'autre) est comment lire uniquement le résultat de $product pour stocker les infos dans un array?
Ma première idée a été de faire un if mais à partir de la je ne sais pas lire les info contenu dans les variables...
PS: avant de poster cette question j'ai été faire un tour sur une bonne dizaine de site, donc essayez de ne pas me renvoyer vers php.net par exemple. Merci

Modifié par genesis (03 Jan 2012 - 12:47)