Voici un code XML que je tente de traiter :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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