2013-02-27 26 views
5
<Root> 
    <SomeElement> 
    ... 
    <Wanted>.....</Wanted> 
    <UnWanted> 
     <Wanted>.....</Wanted> 
    </UnWanted> 
    <Wanted>.....</Wanted> 
    ... 
    </SomeElement> 
</Root> 

मैं "Wanted" तत्व जो किसी भी स्तर पर अंदर "SomeElement" नहीं बल्कि "UnWanted" तत्व के बच्चे का चयन करना चाहते में एक विशेष तत्व नहीं है।XPath सभी तत्वों का चयन जो पूर्वज सूची

XPath /Root/SomeElement//Wanted के साथ मैं UnWanted के बच्चों को बाहर करने में सक्षम नहीं हूं।

उत्तर

3

आप की कोशिश कर सकते

/Root/SomeElement//Wanted[not(ancestor::UnWanted)] 

यह एक UnWanted तत्व के (किसी भी स्तर पर) सभी Wanted तत्वों कि एक बच्चे, पोते, आदि कर रहे हैं शामिल नहीं होंगे। आप केवल Wanted तत्वों है कि एक प्रत्यक्ष बच्चे UnWanted की हैं (लेकिन अभी भी आदि उन है कि पोते हैं, शामिल हैं) को बाहर करना चाहते हैं तो parent::

/Root/SomeElement//Wanted[not(parent::UnWanted)] 
को ancestor:: बदल
संबंधित मुद्दे