2010-01-28 13 views

उत्तर

81

/a/*[not(self::b)]

+2

+1 'स्वयं' धुरी के अच्छे उपयोग के लिए +1;) – Lucero

+2

@ लुसेरो: मुझे उस विचार के लिए @ टोमालक देना है :) – AakashM

+0

क्रेडिट के लिए धन्यवाद। :) – Tomalak

1

Xpath दिखेगा:

a/*[name(.) !='b'] 

तो, के चुनिंदा बच्चों 'एक' जिसका नाम बराबर 'बी' नहीं है

+3

यह ब्रेक तब होता है जब नामस्थान और उपसर्ग का उपयोग किया जा रहा है। – Lucero

+0

@ लुसेरो - स्रोत एक्सएमएल के अनुसार कोई नामस्थान नहीं है, लेकिन यदि ऐसा है तो आपके पास "स्थानीय नाम" फ़ंक्शन – Dewfy

+2

हाँ है, और स्थानीय-नाम() ब्रेक भी इसलिए है क्योंकि यह विशिष्ट तत्व नाम के बजाय किसी भी नामस्थान से तत्वों से मेल खाता है। चूंकि यहां पोस्ट किए गए नमूने अक्सर सरलीकृत होते हैं (यहां स्पष्ट रूप से स्पष्ट) मैं इतना निश्चित नहीं हूं कि कोई नामस्थान उपयोग नहीं किया जाएगा, और फिर भी अगर कोई गुगल हो और इस उत्तर में आता है तो उन्हें पता होना चाहिए कि आपका समाधान नामस्थानों के साथ काम नहीं करता है। – Lucero

9

XPath 2.0 के साथ आप भी कर सकते हैं

/a/(* except b) 
संबंधित मुद्दे