XPath

2008-09-21 15 views
12

के साथ एक नेमस्पेस में एलिमेंट का चयन करें मैं किसी दस्तावेज़ में शीर्षतम तत्व चुनना चाहता हूं जिसमें दिए गए नेमस्पेस (उपसर्ग) हैं।XPath

अधिक विशेष रूप से: मेरे पास XML दस्तावेज़ हैं जो या तो/html/body (एक्सएचटीएमएल नेमस्पेस में) या किसी विशेष नामस्थान में कई तत्वों में से एक के साथ शुरू होते हैं। मैं प्रभावी रूप से/html/body को बाहर करना चाहता हूं और केवल शरीर की सामग्री या संपूर्ण रूट नामस्थान तत्व को वापस करना चाहता हूं।

+0

मेरी पोस्ट लिखने के दौरान, मैं एक कामकाजी समाधान में ठोकर खाई, इसलिए मैंने समुदाय के स्वामित्व में सवाल उठाया और फिर जवाब पोस्ट किया। का आनंद लें! –

उत्तर

9

XPath 2.0 और XQuery 1.0 में आप भविष्य में in-scope-prefixes() फ़ंक्शन का उपयोग करके नामस्थान उपसर्ग के खिलाफ परीक्षण कर सकते हैं। उदा।

//*[in-scope-prefixes(.)='html'] 

आप नहीं कर सकते v2 उपयोग करते हैं, XPath 1.0 में आप namespace-uri() समारोह नाम स्थान को अपने ख़िलाफ़ परीक्षण करने के लिए उपयोग कर सकते हैं। उदा।

//*[namespace-uri()='http://www.w3c.org/1999/xhtml'] 
+1

होना चाहिए: 'http: // www.w3.org/1999/xhtml' – Alp

2

XPath अभिव्यक्ति है कि मैं चाहता हूँ है:

/html:html/html:body/node()|/foo:* 

कहाँ "html" उपसर्ग एक्सएचटीएमएल नाम स्थान के लिए मैप किया गया है, और "foo" उपसर्ग मेरी लक्ष्य नाम स्थान के लिए मैप किया गया है।