XML et PHP undefined method DOMNodeList::getAttribute()
Voici un code XML que je tente de traiter :
Code:
1 2 3 4 5 6 7 8
|
<?xml version="1.0" encoding="UTF-8"?>
<partner id='52421'>
<program id='3079'>
<name><![CDATA[Damart ]]></name>
<action id="W003161870" SubID="test" ActionDate="2017-03-23 22:50:46" ValidationDate="" ActionStatus="1" ActionType="3" ProgramCommission="10.000%" ActionCommission="1.991" CartAmount="19.91" ProgramComID="856715" PartnerComID="315834" Title="Vente+Nouveau+Client" ProgramCurrency="EUR" Device="desktop" />
</program>
</partner> |
Mais php plante à la lecture...Fatal error: Call to undefined method DOMNodeList::getAttribute() in ventepi.php on line 12
Voici le code PHP :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
$document_xml = new DomDocument(); // Instanciation de la classe DomDocument : création d'un nouvel objet
$document_xml->load('http://api.example.com/'); // Chargement du xml affiché ci-dessus
$elements = $document_xml->getElementsByTagName('program');
$nb=$elements->length;
if ($nb>0) {
foreach($elements as $program)
{
$idprog=$program->getAttribute('id');
$achats=$program->getElementsByTagName('action');
// la ligne 12 qui buggue est ci-dessous donc quand on appelle SubID
$argsite=$achats->getAttribute('SubID');
$id_achat=$achats->getAttribute('id');
$idoffer=0;
}
} |
Est-ce que vous avez une idée ? Le XML me parait bizarre pour ma part, notamment la section "action" car elle n'est jamais fermé et n'a que des attributs sans contenu véritable et se termine par çà "/>"
La ligne $idprog=$program->getAttribute('id'); qui récupère le paramètre id de program lui fonctionne il semble, tout çà me paraît assez étrange
Merci par avance