2009-08-27 4 views
10

PHP로 XML을 읽고 있는데, 현재는 DOMDocument 클래스를 사용하고 있습니다. 태그의 이름 (예 : DOMElement)의 이름과 값을 미리 알고 모르는 사이에 그 속성을 파악할 방법이 필요합니다. documentation은 이와 같은 것을 제공하지 않습니다. 나는 그 이름이 있으면 속성 값을 얻을 수 있다는 것을 알고 있지만, 나는 이것들 중 어느 것도 모르고 둘을 찾을 필요가있다.DOMElement의 모든 속성을 가져 오는 방법이 있습니까?

SimpleXMLElement과 같은 다른 클래스에도이 기능이 있지만 저는 DOMDocument으로 어떻게 수행 할 수 있는지 알고 있습니다.

답변

15

DomNode->attributes 속성을 사용하여 주어진 DomNode의 모든 속성을 가져올 수 있으며 속성 이름과 값이 포함 된 DOMNamedNodeMap을 반환합니다.

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

감사합니다. 링크 된 문서는 PHP4 용입니다. PHP5를 사용하는 사람들 (나 같은)은 다음과 같은 최신 문서입니다. http://us.php.net/manual/en/class.domnode.php#domnode.props.attributes –

+0

잘못된 것입니다. foreach는 nodeName과 nodeValue 속성을 가진 DOMNodes를 제공합니다. –

24

당신은 이름을 속성 싶어하고 DOMNode 객체의 $ attrNode-> nodeValue를을 속성을 호출해야 (안 attributeNodes) 속성 값을합니다.

$attributes = array(); 

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

이것은 더 완전한 대답입니다. –

관련 문제