我現在閱讀了很多(也許是全部)關於排除XPath元素的帖子,我只是沒有得到這個工作。我不知道爲什麼。XPath排除某些XML元素?
比方說,我有以下結構:
<root>
<elemA>
Hello World!
</elemA>
<elemB>
This is awesome!
<elemC>Really!</elemC>
</elemB>
</root>
沒有我想除了elemC
所有元素。
基於我已閱讀,我試過以下的XPath:
選項1:
//*[not(self::elemC)]
選項2:
//*[not(name()='elemC')]
方案3:
//*[name()!='elemC']
我不知道爲什麼這不起作用,但懷疑有些愚蠢的錯誤。如果我做的確相反(即省略not
或!
),則XPath會正確選擇elemC
元素。
結果應該是這樣的:
<root>
<elemA>
Hello World!
</elemA>
<elemB>
This is awesome!
</elemB>
</root>
這是一個很好表達的問題,涉及一類XPath(單獨)無法解決的問題。有關更多詳細信息,請參見[我的答案](http://stackoverflow.com/a/39640786/290085)。 – kjhughes