ด้วย XML ต่อไปนี้ฉันจะเขียนแบบสอบถาม XPath เพื่อดึงโหนดที่มีแอตทริบิวต์ได้foo
อย่างไร:
<node1>
<node2>
<node3 foo='bar'></node3>
<node3></node3>
<node3 bar='foo'></node3>
<node3 foo='foobar'></node3>
</node2>
</node1>
ด้วย XML ต่อไปนี้ฉันจะเขียนแบบสอบถาม XPath เพื่อดึงโหนดที่มีแอตทริบิวต์ได้foo
อย่างไร:
<node1>
<node2>
<node3 foo='bar'></node3>
<node3></node3>
<node3 bar='foo'></node3>
<node3 foo='foobar'></node3>
</node2>
</node1>
คำตอบ:
สั้นและหวาน:
//*[@foo]
แน่นอนว่าคุณควรใช้นิพจน์ที่เฉพาะเจาะจงมากขึ้น แต่เมื่อ[@attributeName]
คุณได้รับโหนดทั้งหมดที่มีแอตทริบิวต์นั้น
ใช้นิพจน์ XPath ต่อไปนี้
//*[boolean(@foo)]
หากคุณใช้และ xpath สิ่งนี้อาจช่วยคุณได้:
count(//*[@foo])
มันจะส่งคืนจำนวนโหนด / ชายด์ที่มีแอตทริบิวต์ foo