Bir DomElement niteliklerinin tüm almak için bir yolu var mı?

2 Cevap php

PHP ile bazı XML okuma ve şu anda bunu yapmak için DOMDocument sınıfını kullanıyorum. Ben bunlardan herhangi nelerdir önceden bilmeden niteliklerini bir etiketin (DOMElement in örnek), isimlerini ve değerlerini kapmak için bir yol gerekir. documentation böyle bir şey teklif görünmüyor. Ben onun adı varsa ben bir niteliğin değerini alabilirsiniz biliyorum, ama yine, ben bu iki bilmek ve hem de bulmak gerekmez.

Ben de gibi diğer sınıfları SimpleXMLElement Bu yeteneğe sahip olduğunu biliyorum, ama DOMDocument ile yapılabilir nasıl ilgileniyorum.

2 Cevap

Sen DomNode->attributes özelliğini kullanarak, belirli bir DOMNode tüm özelliklerini alabilirsiniz, DOMNamedNodeMap öznitelik adlarını ve değerlerini içeren size dönecektir.

foreach ($node->attributes as $attrName => $attrNode) {
    // ...
}

Eğer öznitelik adı almak istiyorum ve değerleri (değil attributeNodes) özniteliği Eğer DOMNode nesnenin $ attrNode-> nodeValue özelliği aramak zorunda.

$attributes = array();

foreach($element->attributes as $attribute_name => $attribute_node)
{
  /** @var  DOMNode    $attribute_node */
  $attributes[$attribute_name] = $attribute_node->nodeValue;
}