XPath kullanarak, özniteliği olmayan düğümler nasıl seçilir (burada öznitelik sayısı = 0)?
Örneğin:
<nodes>
<node attribute1="aaaa"></node>
<node attribute1="bbbb"></node>
<node></node> <- FIND THIS
</nodes>
Yanıtlar:
//node[not(@*)]
Bu, belgedeki "düğüm" adlı tüm düğümleri herhangi bir öznitelik olmadan seçmek için kullanılan XPath'dir.
Marek Czaplicki'nin yorumunu ele almak ve cevabı genişletmek için
//node[not(@*) or not(string-length(@*))]
.... sıfır öznitelikli VEYA tamamı boş özniteliklere sahip tüm düğüm elemanlarını seçecektir. Hepsi yerine ilgilendiğiniz belirli bir özellik olsaydı, o zaman kullanabilirsiniz
//node[not(@attribute1) or not(string-length(@attribute1))]
... ve bu, attribute1
OR adında bir attribute1
özniteliği olmayan ve boş bir özniteliğe sahip tüm düğüm öğelerini seçer .
Yani, aşağıdaki öğeler bu xpath ifadelerinden herhangi biri tarafından seçilecektir.
<nodes>
<node attribute1="aaaa"></node>
<node attribute1=""></node> <!--This one -->
<node attribute1="bbbb"></node>
<node></node> <!--...and this one -->
</nodes>
Burada jsfiddle örneğine bakın
<node class=""></node>
de yapabileceğimiz bir şey buluyor mu?