C'è un modo per ottenere tutti gli attributi di un DOMElement?

voti
10

Sto leggendo un po 'di XML con PHP e attualmente utilizzando la DOMDocumentclasse di farlo. Ho bisogno di un modo per afferrare i nomi ei valori di un tag (istanza di DOMElement) attribuisce, senza sapere in anticipo ciò che qualcuno di loro sono. La documentazione non sembra offrire nulla di simile. So che posso ottenere il valore di un attributo se ho il suo nome, ma ancora una volta, non so uno di questi e la necessità di trovare sia.

So anche che le altre classi come SimpleXMLElementhanno questa capacità, ma sono interessato a come si può fare con DOMDocument.

È pubblicato 27/08/2009 alle 04:23
fonte dall'utente
In altre lingue...                            


2 risposte

voti
24

Se si desidera ottenere attribuire nome e valori degli attributi (non i attributeNodes) si deve chiamare la proprietà dell'oggetto DOMNode $ attrNode-> nodeValue.

$attributes = array();

foreach($element->attributes as $attribute_name => $attribute_node)
{
  /** @var  DOMNode    $attribute_node */
  $attributes[$attribute_name] = $attribute_node->nodeValue;
}
Risposto il 08/02/2010 a 20:20
fonte dall'utente

voti
15

È possibile ottenere tutti gli attributi di un dato DomNode, utilizzando il DomNode-> attribuisce proprietà, si ritorna oggetto DOMNamedNodeMap contenente i nomi ei valori degli attributi.

foreach ($node->attributes as $attrName => $attrNode) {
    // ...
}
Risposto il 27/08/2009 a 04:27
fonte dall'utente

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