दिलचस्प पोस्ट
एक onclick घटना को एक तालिका पंक्ति में जोड़ना गतिशील जेएसएफ़ फॉर्म फ़ील्ड कैसे बनाएं बूलियन मानों को संग्रहीत करने के लिए कौन सी MySQL डेटा प्रकार का उपयोग किया जाता है निश्चित समय के बाद वेबसाइट को पुनर्निर्देशित करें डेटाबेस तालिका के किसी स्तंभ में एक सूची को कैसे संग्रहीत करें अरबी भाषा के लिए नियमित अभिव्यक्ति क्या Google प्रपत्र से डेटा का उपयोग करते हुए एक Google फ़ॉर्म 'प्रीफिल' करना संभव है? ISO 8601- संगत स्ट्रिंग को java.util.Date में कनवर्ट करना पायथन सेलेनियम वेब ड्रिवर मेरी अपनी उम्मीद की स्थिति लेखन ऑब्जेक्ट गुण सूची में उद्देश्य-सी प्राप्त करें सीएसएस नकली तत्वों के साथ काम क्यों करता है? यह जांच कैसे करें कि कोई फ्लोट वैल्यू एक पूर्ण संख्या है या नहीं अपाचे: क्लाइंट ने सर्वर कॉन्फ़िगरेशन से इनकार किया जांच करें कि उपयोगकर्ता के पास क्रोम एक्सटेंशन इंस्टॉल है या नहीं अजगर में विंडोज पथ

XPATHS और डिफ़ॉल्ट नेमस्पेस

XPath के पीछे की कहानी और नामस्थानों के लिए समर्थन क्या है? क्या एक्सपैथ एक विनिर्देश के रूप में नाम स्थान से पहले है? अगर मेरे पास कोई ऐसा दस्तावेज़ है जहां तत्वों को एक डिफ़ॉल्ट नेमस्पेस दिया गया है:

<foo xmlns="uri" /> 

ऐसा प्रतीत होता है जैसे कि XPath प्रोसेसर पुस्तकालयों में से कुछ नाम स्थान के कारण //foo पहचान नहीं पाएंगे जबकि अन्य मेरी टीम के बारे में सोचा वाला विकल्प नियमित अभिव्यक्ति का उपयोग एक्सपीथ (आप एक्सएमएलएनमेलेट के जरिए एक नेमस्पेस उपसर्ग जोड़ सकते हैं) के साथ एक नेमस्पेस उपसर्ग जोड़ना है, लेकिन जब यह नोड टेस्ट की बात आती है तो XPath एक ऐसी लचीली भाषा है,

क्या इस पर एक मानक लागू होता है?

मेरा दृष्टिकोण थोड़ी गड़बड़ है लेकिन यह ठीक काम करता है; मैं खोज के साथ xmlns घोषणा को हटाता / प्रतिस्थापित करता हूं और फिर XPath को लागू करता हूं।

 string readyForXpath = Regex.Replace(xmldocument, "xmlns=\".+\"", String.Empty ); 

क्या यह एक निष्पक्ष दृष्टिकोण है या किसी ने इसे अलग तरह से हल किया है?

वेब के समाधान से एकत्रित समाधान "XPATHS और डिफ़ॉल्ट नेमस्पेस"

मैंने पेलेहोरस को प्रस्तावित किया था और इसे काम करने के लिए नहीं मिल सका जैसा कुछ करने की कोशिश की। चूंकि मैं एक प्रकाशित सेवा से डेटा प्राप्त कर रहा था इसलिए मैं XML को नहीं बदल सका। मैं XmlDocument और XmlNamespaceManager का उपयोग करना समाप्त कर रहा हूं:

 XmlDocument doc = new XmlDocument(); doc.LoadXml(xmlWithBogusNamespace); XmlNamespaceManager nSpace = new XmlNamespaceManager(doc.NameTable); nSpace.AddNamespace("myNs", "http://theirUri"); XmlNodeList nodes = doc.SelectNodes("//myNs:NodesIWant",nSpace); //etc 

आपको स्थानीय-नाम () की आवश्यकता है:

http://www.w3.org/TR/xpath#function-local-name

http://jcooney.net/archive/2005/08/09/6517.aspx से पालना करने के लिए:

 <foo xmlns='urn:foo'> <bar> <asdf/> </bar> </foo> 

यह अभिव्यक्ति "बार" तत्व से मेल खाएगी:

  //*[local-name()='bar'] 

यह नहीं होगा:

  //bar 

मुद्दा यह है कि नाम स्थान के बिना एक तत्व को शून्य नाम स्थान में घोषित किया जाता है – इसलिए यदि // नाम के फू के साथ मेल खाता है जो आप 'डिफ़ॉल्ट' मानते हैं, तो रिक्त नामस्थान में किसी तत्व का संदर्भ देने का कोई तरीका नहीं होगा।

साथ ही साथ याद रखें कि नाम स्थान के लिए उपसर्ग केवल एक लघुकथा सम्मेलन है, वास्तविक तत्व का नाम (योग्य नाम, या कम के लिए क्यूनाम) में पूर्ण नेमस्पेस और स्थानीय नाम शामिल है। नाम स्थान के लिए उपसर्ग को बदलना एक तत्व की 'पहचान' नहीं बदलता है – यदि वह समान नाम स्थान और समान स्थानीय नाम में है तो यह एक ही प्रकार का तत्व है, भले ही उपसर्ग अलग है

XPath 2.0 (या बल्कि XSLT 2.0) में 'डिफ़ॉल्ट xpath नामस्थान' की अवधारणा है आप एक्सएसएल: स्टाइलशीट एलीमेंट पर एक्सपाथ-डीफॉल्ट-नेमस्पेस एट्रिब्यूट सेट कर सकते हैं।

यदि आप एक्सएसएलटी का इस्तेमाल करने की कोशिश कर रहे हैं तो आप नेमस्पेस को स्टाइलशीट घोषणा में जोड़ सकते हैं। यदि आप ऐसा करते हैं, तो आपको यह सुनिश्चित करना होगा कि कोई उपसर्ग है या यह काम नहीं करेगा। यदि स्रोत XML में एक उपसर्ग नहीं है, तो वह अभी भी ठीक है, आप स्टाइलशीट में अपना स्वयं का उपसर्ग जोड़ते हैं।

शैली पत्रक

 <xsl:stylesheet xmlns:fb="uri" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:template match="fb:foo/bar"> <!-- do stuff here --> </xsl:template> </xsl:stylsheet> 

या कुछ इस तरह का।