इस XML को देखते हुए, XPath उन सभी तत्वों को लौटाता है जिनकी prop
विशेषता में Foo
(पहले तीन नोड्स) शामिल हैं:
<bla>
<a prop="Foo1"/>
<a prop="Foo2"/>
<a prop="3Foo"/>
<a prop="Bar"/>
</bla>
इस XML को देखते हुए, XPath उन सभी तत्वों को लौटाता है जिनकी prop
विशेषता में Foo
(पहले तीन नोड्स) शामिल हैं:
<bla>
<a prop="Foo1"/>
<a prop="Foo2"/>
<a prop="3Foo"/>
<a prop="Bar"/>
</bla>
जवाबों:
//a[contains(@prop,'Foo')]
काम करता है अगर मैं परिणाम प्राप्त करने के लिए इस XML का उपयोग करता हूं।
<bla>
<a prop="Foo1">a</a>
<a prop="Foo2">b</a>
<a prop="3Foo">c</a>
<a prop="Bar">a</a>
</bla>
संपादित करें: ध्यान देने वाली एक और बात यह है कि जबकि ऊपर वाला XPath उस विशेष xml के लिए सही उत्तर देगा, यदि आप गारंटी देना चाहते हैं कि आपको "तत्वों में" तत्व "bla" मिल सकता है, तो आपको दूसरों का भी उल्लेख करना चाहिए।
/bla/a[contains(@prop,'Foo')]
यह आपके "xah" तत्व में निहित होने की परवाह किए बिना, आपके संपूर्ण xml दस्तावेज़ में "सभी" तत्वों को खोजेगा
//a[contains(@prop,'Foo')]
मैंने इसे संपूर्णता के लिए और स्टैकओवरफ़्लो की भावना में जोड़ा। :)
xmlme.com
अब कुछ अन्य होस्ट पर रीडायरेक्ट करता है और उपकरण या इसके जैसे कुछ भी होस्ट करने के लिए प्रकट नहीं होता है।
यह XPath आपको नोड नोड या विशेषता नाम की परवाह किए बिना 'फू' वाले सभी नोड्स देगा:
//attribute::*[contains(., 'Foo')]/..
बेशक, यदि आप विशेषता की सामग्री में खुद को अधिक रुचि रखते हैं, और जरूरी नहीं कि उनके मूल नोड, बस ड्रॉप / ।।
//attribute::*[contains(., 'Foo')]
//@*[contains(., 'Foo')]
descendant-or-self::*[contains(@prop,'Foo')]
या:
/bla/a[contains(@prop,'Foo')]
या:
/bla/a[position() <= 3]
विच्छेदित:
descendant-or-self::
अक्ष - नीचे और नीचे प्रत्येक नोड के माध्यम से खोज। इसे अक्सर // से बेहतर कहा जाता है। मुझे कुछ क्रियान्वयनों का सामना करना पड़ा है, जहां // का मतलब कहीं भी (मूल या जड़ नोड का स्वयं का)। अन्य डिफ़ॉल्ट अक्ष का उपयोग करते हैं।
* or /bla/a
टैग - एक वाइल्डकार्ड मैच, और / bla / a एक पूर्ण पथ है।
[contains(@prop,'Foo')] or [position() <= 3]
के भीतर की हालत []। विशेषता के लिए @prop आशुलिपि है :: सहारा, क्योंकि विशेषता एक और खोज अक्ष है। वैकल्पिक रूप से आप स्थिति () फ़ंक्शन का उपयोग करके पहले 3 का चयन कर सकते हैं।
जॉन सी निकटतम है, लेकिन XPath संवेदनशील है, इसलिए सही XPath होगा:
/bla/a[contains(@prop, 'Foo')]
क्या आपने कुछ इस तरह की कोशिश की है:
// [a (@prop, "Foo")]
मैंने पहले कभी भी फ़ंक्शन का उपयोग नहीं किया है, लेकिन संदेह है कि इसे विज्ञापन के रूप में काम करना चाहिए ...
यदि आपको स्वयं लिंक की सामग्री से मेल खाना है, तो पाठ का उपयोग करें ():
//a[contains(@href,"/some_link")][text()="Click here"]
इसे इस्तेमाल करे:
// एक [शामिल (@ प्रोप, 'foo')]
दस्तावेज़ में किसी भी "ए" टैग के लिए काम करना चाहिए