XPath: จะตรวจสอบได้อย่างไรว่ามีแอตทริบิวต์อยู่หรือไม่?


104

ด้วย XML ต่อไปนี้ฉันจะเขียนแบบสอบถาม XPath เพื่อดึงโหนดที่มีแอตทริบิวต์ได้fooอย่างไร:

<node1>
  <node2>
    <node3 foo='bar'></node3>
    <node3></node3>
    <node3 bar='foo'></node3>
    <node3 foo='foobar'></node3>
  </node2>
</node1>

คำตอบ:


163

สั้นและหวาน:

//*[@foo]

แน่นอนว่าคุณควรใช้นิพจน์ที่เฉพาะเจาะจงมากขึ้น แต่เมื่อ[@attributeName]คุณได้รับโหนดทั้งหมดที่มีแอตทริบิวต์นั้น



8

หากคุณใช้และ xpath สิ่งนี้อาจช่วยคุณได้:

count(//*[@foo])

มันจะส่งคืนจำนวนโหนด / ชายด์ที่มีแอตทริบิวต์ foo

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.