XPathを使用して、属性を持たないノードを選択する方法(属性カウント= 0)
例えば:
<nodes>
<node attribute1="aaaa"></node>
<node attribute1="bbbb"></node>
<node></node> <- FIND THIS
</nodes>
//node[not(@*)]
これは、属性を持たないドキュメント内の「node」という名前のすべてのノードを選択するXPathです。
//node[count(@*)=0]
属性がゼロのすべての<node>を選択します
Marek Czaplickiのコメントに対処し、答えを拡大するには
//node[not(@*) or not(string-length(@*))]
....属性がすべて空の属性を持つすべてのノード要素ORを選択します。すべての属性ではなく、興味のある特定の属性である場合は、使用できます
//node[not(@attribute1) or not(string-length(@attribute1))]
...そして、これは、attribute1
属性が空のattribute1
ORという属性を持たないすべてのノード要素を選択します。
つまり、これらのxpath式のいずれかによって次の要素が選択されます。
<nodes>
<node attribute1="aaaa"></node>
<node attribute1=""></node> <!--This one -->
<node attribute1="bbbb"></node>
<node></node> <!--...and this one -->
</nodes>
Jsfiddleの例を参照してください here