これは簡単な質問ですが、わかりません。次の単純なXMLドキュメントについて考えてみます。
<root>
<a></a>
<b></b>
<c></c>
<a></a>
<d></d>
<e></e>
<a></a>
<a></a>
</root>
ノードを選択する最良の方法は何ですか<b>
使って <e>
XPathを使用していますか?
私はのようなものを探しています
/root/*[not(a)]
(これはトリックを行いません)
/root/*[not(self::a)]
XPath 2.0でそれを追加するために答えると、except
を使用できます。
/root/(* except a)
XPath 1.0では、Tomalakが指摘しましたが、これは標準的な方法です。
/root/*[not(self::a)]
ところで、XSLT 2.0でこれをxsl:template/@match
属性@match
は、lookはXPath式と似ていますが、not XPath式であるパターンを取ります。この場合、XPath 1.0のソリューションが機能します。
これは古い質問であることに気づきましたが、最近同様の問題が発生し、次のxpathを使用して解決しました。
/root/*[not(name()='a')]