PHP/XML Lister les attributs d'une balise

Résolu/Fermé
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 - 23 juin 2014 à 19:33
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 - 23 juin 2014 à 20:07
Bonjour,

Je code un script pour manipuler du XML.
Je bug toutefois sur un point précis et malgré quelques recherches, je n'ai pas vraiment trouvé ce que je veux.
Je ne contrôle pas vraiment le fichier XML étant issus d'un logiciel.
Je souhaite malgré tout détecter les attributs qui sont sur une balise.
Autant il n'y a aucune surprise sur la balise, autant concernant les attributs, c'est différent. Ceux-ci correspondent à des paramètres qu'on peut modifier manuellement dans le logiciel.
Je n'ai pas de contrôle sur eux mais souhaiterai pouvoir les lister et ensuite les manipuler si besoin.
Je bloque sur le moyen de les détecter.
J'ai regardé dans la doc de PHP: https://www.php.net/manual/fr/book.dom.php
J'ai trouvé getAttribute mais il faut connaître le nom de l'attribut...

Exemples de balises concernés:
<Parameters TETE="0" PIED="0" DOS="0" FP="0" FPD="0" GF="0" DEP="0" FPT="0" FPP="0" FPGF="0"/>
<Parameters HB="0" LB="0" RT="0" RD="0" MT="0" MP="0" MD="0" MGF="0" VP="0" HP="0" RGF="0" RP="0" DEP="0" BT="0" BP="0" BPF="0" BGF="0" HE="0" VE="0" picots="0" picot1="0" DEPAV="0"/>

Je ne connais pas à l'avance les attributs utilisés.

Quelqu'un aurait une idée?

(J'espère avoir été claire dans ma demande.

Merci par avance.


1 réponse

arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
23 juin 2014 à 20:07
En fait, j'ai fini par trouvé.
La réponse était dans la doc, dans les commentaires.

$parametres = $dom->getElementsByTagName("Parameters");
foreach($parametres as $para_val)
	{
	$para_val->hasAttributes();
	$attributes = $para_val->attributes;
	foreach ($attributes AS $index=>$attr)
		{
		echo $index;
		}
	}


Et:
echo $para_val->getAttribute($index);

dans le foreach pour afficher la valeur.

Donc résolu!!
0