Как с помощью XPath выбрать узлы, у которых нет атрибутов (где количество атрибутов = 0)?
Например:
<nodes>
<node attribute1="aaaa"></node>
<node attribute1="bbbb"></node>
<node></node> <- FIND THIS
</nodes>
//node[not(@*)]
Это XPath для выбора всех узлов с именем «узел» в документе без каких-либо атрибутов.
<node class=""></node>
что мы можем с этим поделать?Выберет все <node> с нулевыми атрибутами
источник
Чтобы ответить на комментарий Марека Чаплицкого и развернуть ответ
.... выберет все элементы узла с нулевыми атрибутами ИЛИ с пустыми атрибутами. Если бы вас интересовал только конкретный атрибут, а не все они, то вы могли бы использовать
... и это выберет все элементы узла, которые либо не имеют атрибута с именем
attribute1
OR, у которых естьattribute1
атрибут, который пуст.То есть следующие элементы будут выбраны любым из этих выражений xpath
<nodes> <node attribute1="aaaa"></node> <node attribute1=""></node> <!--This one --> <node attribute1="bbbb"></node> <node></node> <!--...and this one --> </nodes>
См. Пример jsfiddle здесь
источник