Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
643 views
in Technique[技术] by (71.8m points)

xml - XPath to get all child elements except one with specific name?

How do I target all elements in a document except a particular element name?

For example I want to exclude the terminate elements. They can occur throughout the document.

 <root>
     <terminate attr="1" />
     <other>
         The brown fox jumps over the fence. 
         <terminate>
            <b>stuff</b>
         </terminate>
     </other>
 </root>

I've tried using the not(..) operator without success likely because I'm using it wrong.

And frankly trying to Google 'not' is tough!

question from:https://stackoverflow.com/questions/4121539/xpath-to-get-all-child-elements-except-one-with-specific-name

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

The following xpath should work

/root/*[not(self::terminate)] 

Also, i think you can do it with this as well

/root/*[not(name()='terminate')]

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...