XPath: Как выбрать узлы, которые не имеют атрибутов?
С помощью XPath, как выбрать узлы, которые не имеют атрибутов (где атрибут count = 0)?
например:
<nodes>
<node attribute1="aaaa"></node>
<node attribute1="bbbb"></node>
<node></node> <- FIND THIS
</nodes>
3 ответа:
чтобы обратиться к комментарию Марека Чаплицкого и расширить ответ
//node[not(@*) or not(string-length(@*))]
....будут выбраны все элементы узла с нулевыми атрибутами или имеющие атрибуты, которые все пусты. Если бы это был просто конкретный атрибут, который вас интересует, а не все из них, то вы могли бы использовать
//node[not(@attribute1) or not(string-length(@attribute1))]
...и это будет выбрать все элементы узла, которые либо не имеют атрибута с именем
attribute1
или нетattribute1
атрибут, который пуст.что is, следующие элементы будут выбраны любым из этих выражений xpath
<nodes> <node attribute1="aaaa"></node> <node attribute1=""></node> <!--This one --> <node attribute1="bbbb"></node> <node></node> <!--...and this one --> </nodes>