Est-il possible d'obtenir tous les attributs d'un DOMElement?

voix
10

Je lis un peu XML avec PHP et utilise actuellement la DOMDocumentclasse de le faire. Je besoin d' un moyen de saisir les noms et les valeurs (l'instance de d'une balise DOMElement) attributs, sans savoir à l' avance ce que l' un d'eux sont. La documentation ne semble pas offrir quelque chose comme ça. Je sais que je peux obtenir une valeur de l' attribut si je son nom, mais encore une fois, je ne sais pas non plus de ces derniers et besoin de trouver à la fois.

Je sais aussi que d' autres classes comme SimpleXMLElementont cette capacité, mais je suis intéressé par la façon dont il peut être fait avec DOMDocument.

Créé 27/08/2009 à 04:23
source utilisateur
Dans d'autres langues...                            


2 réponses

voix
24

Si vous souhaitez obtenir attribuer le nom et les valeurs d'attribut (pas les attributeNodes) vous devez appeler la propriété $ attrNode-> nodeValue de l'objet DOMNode.

$attributes = array();

foreach($element->attributes as $attribute_name => $attribute_node)
{
  /** @var  DOMNode    $attribute_node */
  $attributes[$attribute_name] = $attribute_node->nodeValue;
}
Créé 08/02/2010 à 20:20
source utilisateur

voix
15

Vous pouvez obtenir tous les attributs d'un DomNode, en utilisant les données DomNode-> attributs propriété, il vous renvoie DOMNamedNodeMap contenant les noms et valeurs d'attributs.

foreach ($node->attributes as $attrName => $attrNode) {
    // ...
}
Créé 27/08/2009 à 04:27
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more