साथ जैसे मैं XML दस्तावेज़ों है:xpath 'या' संघ की तरह बर्ताव कर ('|') xmllib2
<rootelement>
<myelement>test1</myelement>
<myelement>test2</myelement>
<myelement type='specific'>test3</myelement>
</rootelement>
मैं विशिष्ट myelement
पुनः प्राप्त करना चाहते हैं, और अगर यह तो उपस्थित नहीं है, पहला वाला। तो मैं लिखना:
/rootelement/myelement[@type='specific' or position()=1]
'या' अभिव्यक्ति है कि के बारे में XPath spec कहता है:
सही संकार्य का मूल्यांकन नहीं है, तो बाईं संकार्य सच
समस्या का मूल्यांकन यह है कि libxml2-2.6.26 दोनों अभिव्यक्तियों का संघ लागू करता है, "2 नोड सेट" लौटाता है (उदाहरण के लिए xmllint --shell
का उपयोग करना)।
क्या यह libxml2 है या क्या मैं कुछ गलत कर रहा हूं?
अच्छा प्रश्न (+1):
यहाँ एक XPath एक लाइनर का चयन वास्तव में क्या आप चाहते हैं। एक एकल XPath अभिव्यक्ति के लिए मेरा उत्तर देखें जो वास्तव में आपके इच्छित नोड का चयन करता है। :) –