यह उत्तर देने के लिए एक बहुत ही आसान सवाल की तरह लगता है लेकिन मैं इसे काम करने में सक्षम नहीं हूं। मैं PHP 5.2.6 चला रहा हूँ।मैं PHP डॉम में किसी तत्व का नामस्थान कैसे ढूंढ सकता हूं?
मैं (मूल तत्व), जो है, जब मैं $ तत्व-> saveXML() के लिए जाना, यह एक xmlns विशेषता आउटपुट एक डोम तत्व है:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
...
हालांकि, मैं प्रोग्राम के रूप में के भीतर किसी भी तरह से नहीं मिल सकता है नामस्थान को देखने के लिए PHP। मैं यह जांचने में सक्षम होना चाहता हूं कि यह मौजूद है या नहीं और यह क्या सेट है।
$document->documentElement->namespaceURI
की जांच करना स्पष्ट उत्तर होगा लेकिन यह खाली है (मैं वास्तव में इसे खाली नहीं होने में सक्षम हूं)। उत्पादन में xmlns मान उत्पन्न कर रहा है और मैं इसे कैसे पढ़ सकता हूं?
एकमात्र व्यावहारिक तरीका मैं अब तक ऐसा करने में सक्षम हूं - इसे saveXML() का उपयोग करके स्ट्रिंग में एक्सएमएल के रूप में सहेजकर, फिर नियमित अभिव्यक्तियों का उपयोग करके इसे पढ़कर।
संपादित करें:
यह loadHTML (का उपयोग करने में लोड हो रहा है XML की एक विशेष लक्षण हो सकता है) बल्कि loadXML() और फिर से saveXML का उपयोग कर इसे बाहर मुद्रण()। जब आप ऐसा करते हैं, तो ऐसा लगता है कि किसी कारण से saveXML एक xmlns विशेषता जोड़ता है, भले ही यह पता लगाने का कोई तरीका न हो कि यह xmlns मान DOM विधियों का उपयोग कर दस्तावेज़ का हिस्सा है। जो मुझे लगता है कि अगर मुझे यह पता लगाने का कोई तरीका था कि क्या लोड किया गया दस्तावेज़ लोड HTML() का उपयोग करने में लोड किया गया था, तो मैं इसे एक अलग तरीके से हल कर सकता हूं।
बहुत अच्छा और विस्तृत, पार्सिंग विधि के आधार पर नोड टाइप के बारे में नहीं पता था, लेकिन यह समझ में आता है – edorian
नोडटाइप के बारे में संकेत और xpath का उपयोग करने की क्षमता के लिए धन्यवाद - मेरी कई समस्याओं को हल करता है! – thomasrutter