ใช้ XPath วิธีเลือกโหนดที่ไม่มีแอตทริบิวต์ (โดยที่แอตทริบิวต์ count = 0)
ตัวอย่างเช่น:
<nodes>
<node attribute1="aaaa"></node>
<node attribute1="bbbb"></node>
<node></node> <- FIND THIS
</nodes>
ใช้ XPath วิธีเลือกโหนดที่ไม่มีแอตทริบิวต์ (โดยที่แอตทริบิวต์ count = 0)
ตัวอย่างเช่น:
<nodes>
<node attribute1="aaaa"></node>
<node attribute1="bbbb"></node>
<node></node> <- FIND THIS
</nodes>
คำตอบ:
//node[not(@*)]
นั่นคือ XPath เพื่อเลือกโหนดทั้งหมดที่มีชื่อว่า "node" ในเอกสารโดยไม่มีแอตทริบิวต์ใด ๆ
//node[count(@*)=0]
จะเลือก <node> ทั้งหมดที่มีแอตทริบิวต์เป็นศูนย์
เพื่อตอบความคิดเห็นของ Marek Czaplicki และขยายคำตอบ
//node[not(@*) or not(string-length(@*))]
.... จะเลือกองค์ประกอบโหนดทั้งหมดที่มีแอตทริบิวต์เป็นศูนย์หรือซึ่งมีแอตทริบิวต์ที่ว่างเปล่าทั้งหมด หากเป็นเพียงคุณลักษณะเฉพาะที่คุณสนใจไม่ใช่ทั้งหมดคุณสามารถใช้ได้
//node[not(@attribute1) or not(string-length(@attribute1))]
... และสิ่งนี้จะเลือกองค์ประกอบโหนดทั้งหมดที่ไม่มีแอตทริบิวต์ที่เรียกว่า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 ที่นี่
<node class=""></node>
อะไรให้เราทำได้บ้าง?