के साथ टाइप करें मैं Body
तत्व पर xsi:type
विशेषता के मान को वापस करने के लिए सही XPath अभिव्यक्ति निर्धारित करने का प्रयास कर रहा हूं। मैंने भाग्य के बिना सबकुछ की तरह क्या कोशिश की है। जो मैंने पढ़ा है उसके आधार पर यह करीब प्रतीत होता है लेकिन यह स्पष्ट रूप से सही नहीं है। कोई त्वरित मार्गदर्शन ताकि मैं अंत में आराम कर सकूं?xsi का मान प्राप्त करें: xpath
//v20:Body/@xsi:type
मैं इसे वापस करने के लिए v20:SmsMessageV1RequestBody
<v20:MessageV1Request>
<v20:Header>
<v20:Source>
<v20:Name>SOURCE_APP</v20:Name>
<v20:ReferenceId>1326236916621</v20:ReferenceId>
<v20:Principal>2001</v20:Principal>
</v20:Source>
</v20:Header>
<v20:Body xsi:type="v20:SmsMessageV1RequestBody">
<v20:ToAddress>5555551212</v20:ToAddress>
<v20:FromAddress>11111</v20:FromAddress>
<v20:Message>TEST</v20:Message>
</v20:Body>
</v20:MessageV1Request>
एक्सपैथ अभिव्यक्ति मेरे लिए अच्छा लगती है। क्या आप इस XPath को XQUERY, XSLT या कुछ और में उपयोग कर रहे हैं? यहां किसी समस्या का सबसे संभावित कारण नामस्थान उपसर्गों के कारण भ्रम है। भ्रम के स्रोत के रूप में नेमस्पेस को खत्म करने का एक तरीका है xpath को फिर से लिखना: // * [स्थानीय-नाम() eq 'body']/@ * [स्थानीय-नाम() eq 'type'] –
मरे सही है , क्योंकि XPath में नामस्थानों से निपटने के लिए आम तौर पर दो तरीके होते हैं - पहले: 'स्थानीय-नाम()' और 'नेमस्पेस-यूरी()' XPath फ़ंक्शन का उपयोग करके, दूसरा: XPath इंजन के उचित तंत्र का उपयोग करना - उदाहरण के लिए मानक जेएक्सपी के लिए आपको उचित रूप से कॉन्फ़िगर किए गए नेमस्पेस कॉन्टेक्स्ट का उपयोग करना होगा जो नामस्थानों के उपसर्गों को मानचित्र करता है। –