मुझे निकालना पड़ेगा attr
ऐसे XML से मूल्य:
<FIXML xmlns="http://www.fixprotocol.org/FIXML-5-0-SP2">
<TAG attr="value">
...
</TAG>
</FIXML>
और ऐसे Java कोड का उपयोग करने का प्रयास करें
XPathExpression expression = XPathExpressionFactory.createXPathExpression("/FIXML/TAG/@attr");
XmlPayloadConverter converter = new DefaultXmlPayloadConverter();
Node node = converter.convertToNode(xmlStr);
Object result = expression.evaluateAsString(node);
दुर्भाग्य से result
यहां मूल्य हमेशा खाली होता है। अगर मैं नेमस्पेस अटायर हटा दूं xmlns="http://www.fixprotocol.org/FIXML-5-0-SP2"
कोड अपेक्षित रूप में काम करता है (result
है value
स्ट्रिंग)।
मेरे जावा कोड उदाहरण में नामस्थान की उपेक्षा कैसे करें?
अद्यतन करें: ऐसा लगता है कि मुझे XPath का उपयोग करना है local-name()
मेरी अभिव्यक्ति में कार्य करते हैं लेकिन मेरे मामले में व्यावहारिक रूप से इसका उपयोग कैसे करें?
उपाय: मेरे मामले में सही XPath विस्तार है "/*[local-name()="FIXML"]/*[local-name()="TAG"]/@attr"
उत्तर:
जवाब के लिए 0 № 1कुछ इसी तरह का पोस्ट / उत्तर यहाँ दिया गया था: Xpath का उपयोग करके XML फ़ाइलों में नेमस्पेस कैसे प्राप्त करें
एक विकल्प के बारे में भूलना होगाउस के साथ एक उपसर्ग जोड़ना नाम स्थान, और बस अपना पथ नाम-स्थान मुक्त करें। आप इसके द्वारा कर सकते हैं स्थानीय-नाम () फ़ंक्शन का उपयोग करके जब भी आपको किसी को संदर्भित करने की आवश्यकता होती है तत्व जिसका नामस्थान आप जानते नहीं हैं। उदाहरण के लिए:
//*[local-name() = "Element"]