2009-08-27 13 views
10

मैं PHP के साथ कुछ एक्सएमएल पढ़ रहा हूँ और वर्तमान में ऐसा करने के लिए DOMDocument वर्ग का उपयोग कर। मुझे किसी टैग के नाम और मूल्यों को पकड़ने का एक तरीका है (DOMElement का उदाहरण) विशेषताएँ, बिना किसी जानकारी के पहले। documentation ऐसा कुछ नहीं पेश करता प्रतीत होता है। मुझे पता है कि अगर मेरा नाम है तो मुझे एक विशेषता का मूल्य मिल सकता है, लेकिन फिर से, मुझे इनमें से कोई भी नहीं पता और दोनों को खोजने की जरूरत है।क्या सभी डोमेलेमेंट के गुण प्राप्त करने का कोई तरीका है?

मुझे यह भी पता है कि SimpleXMLElement जैसी अन्य कक्षाएं इस क्षमता में हैं, लेकिन मुझे दिलचस्पी है कि यह DOMDocument के साथ कैसे किया जा सकता है।

उत्तर

15

आप DomNode->attributes संपत्ति का उपयोग कर एक दिया DomNode की सभी विशेषताओं प्राप्त कर सकते हैं, यह आप DOMNamedNodeMap विशेषता नाम और मान युक्त वापस आ जाएगी।

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

धन्यवाद! सिर्फ एक नोट कि आपके द्वारा लिंक किए गए दस्तावेज़ PHP4 के लिए हैं। http://us.php.net/manual/en/class.domnode.php#domnode.props.attributes –

+0

यह गलत है: (मेरे जैसे) PHP5 का उपयोग करने वालों के लिए, यह और अधिक हाल के दस्तावेज़ है। Foreach आपको DOMNodes देता है, जिसमें एक नोडनाम और nodeValue संपत्ति है। –

24

आप विशेषता नाम प्राप्त करना चाहते हैं और विशेषता मान (attributeNodes नहीं) आप DOMNode वस्तु की $ attrNode-> nodeValue संपत्ति कॉल करने के लिए है।

$attributes = array(); 

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

यह एक और पूरा जवाब है। –

संबंधित मुद्दे

 संबंधित मुद्दे