Is er een manier om alle attributen van een DOMElement's te krijgen?

stemmen
10

Ik lees een aantal XML met PHP en op dit moment met behulp van de DOMDocumentklasse om dat te doen. Ik moet een manier vinden om de namen en waarden van een tag (bijvoorbeeld van pak DOMElement) attributen, zonder vooraf te weten wat een van hen. De documentatie lijkt niet om zoiets aan te bieden. Ik weet dat ik de waarde van een attribuut kan krijgen als ik zijn naam, maar nogmaals, ik weet niet een van deze en de noodzaak om beide te vinden.

Ik weet ook dat andere klassen zoals SimpleXMLElementhebben deze mogelijkheid, maar ik ben geïnteresseerd in hoe het kan worden gedaan DOMDocument.

De vraag is gesteld op 27/08/2009 om 04:23
bron van user
In andere talen...                            


2 antwoorden

stemmen
24

Als u wilt krijgen attribuutnaam en attribuutwaarden (niet de attributeNodes) moet je de $ attrNode-> nodeValue eigenschap van de DOMNode object noemen.

$attributes = array();

foreach($element->attributes as $attribute_name => $attribute_node)
{
  /** @var  DOMNode    $attribute_node */
  $attributes[$attribute_name] = $attribute_node->nodeValue;
}
antwoordde op 08/02/2010 om 20:20
bron van user

stemmen
15

U kunt alle kenmerken van een bepaalde DomNode te krijgen, met behulp van de DomNode-> attributen eigendom, zal het u terug DOMNamedNodeMap met het attribuut namen en waarden.

foreach ($node->attributes as $attrName => $attrNode) {
    // ...
}
antwoordde op 27/08/2009 om 04:27
bron van user

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