Aby rozwiązać komentarz Marek Czaplicki i rozwinąć odpowiedź
//node[not(@*) or not(string-length(@*))]
.... wybierze wszystkie elementy węzła o zerowej atrybutów lub które posiadają atrybuty, które są puste. Jeśli był to tylko szczególny atrybut jesteś zainteresowany, a nie wszystkie z nich, a następnie można użyć
//node[not(@attribute1) or not(string-length(@attribute1))]
... i to by zaznaczyć wszystkie elementy węzłowe, które albo nie mają atrybut o nazwie attribute1
OR które mają atrybut attribute1
, który jest pusty.
Oznacza to, że następujące elementy byłyby wybrane przez jedno z tych określeń xPath
<nodes>
<node attribute1="aaaa"></node>
<node attribute1=""></node> <!--This one -->
<node attribute1="bbbb"></node>
<node></node> <!--...and this one -->
</nodes>
+1 - to rozwiązanie bardziej XPath-Y. :) – Tomalak
To jest miłe, ale nadal znajduje '' node class = ""> 'cokolwiek możemy z tym zrobić? –
@MarekCzaplicki zobacz odpowiedź poniżej, aby rozwiązać ten problem. https://stackoverflow.com/questions/1323755/xpath-how-to-select-nodes-which-have-no-attributes/43910689#43910689 – pip