Menggunakan XPath, bagaimana memilih node yang tidak memiliki atribut (di mana jumlah atribut = 0)?
Sebagai contoh:
<nodes>
<node attribute1="aaaa"></node>
<node attribute1="bbbb"></node>
<node></node> <- FIND THIS
</nodes>
Jawaban:
//node[not(@*)]
Itulah XPath untuk memilih semua node bernama "node" dalam dokumen tanpa atribut apa pun.
Untuk menjawab komentar Marek Czaplicki dan memperluas jawabannya
//node[not(@*) or not(string-length(@*))]
.... akan memilih semua elemen node dengan atribut nol ATAU yang memiliki atribut yang semuanya kosong. Jika itu hanya atribut tertentu yang Anda minati, bukan semuanya, Anda dapat menggunakan
//node[not(@attribute1) or not(string-length(@attribute1))]
... dan ini akan memilih semua elemen node yang tidak memiliki atribut bernama attribute1
OR yang memiliki attribute1
atribut kosong.
Artinya, elemen berikut akan dipilih oleh salah satu ekspresi xpath ini
<nodes>
<node attribute1="aaaa"></node>
<node attribute1=""></node> <!--This one -->
<node attribute1="bbbb"></node>
<node></node> <!--...and this one -->
</nodes>
Lihat contoh jsfiddle di sini
<node class=""></node>
ada yang bisa kita lakukan?