ล่าสุดการพัฒนาเว็บบทเรียน
 

XPath แกน


ตัวอย่าง XML เอกสาร

เราจะใช้เอกสาร XML ต่อไปนี้ในตัวอย่างด้านล่าง

<?xml version="1.0" encoding="UTF-8"?>

<bookstore>

<book>
  <title lang="en">Harry Potter</title>
  <price>29.99</price>
</book>

<book>
  <title lang="en">Learning XML</title>
  <price>39.95</price>
</book>

</bookstore>

XPath แกน

แกนกำหนดโหนดตั้งเทียบกับโหนดปัจจุบัน

AxisName ผล
บรรพบุรุษ เลือกบรรพบุรุษทั้งหมด (parent, grandparent, etc.) ของโหนดปัจจุบัน
ปู่ย่าตายายหรือด้วยตนเอง เลือกบรรพบุรุษทั้งหมด (parent, grandparent, etc.) ของโหนดปัจจุบันและโหนดปัจจุบันตัวเอง
คุณลักษณะ เลือกคุณลักษณะทั้งหมดของโหนดปัจจุบัน
เด็ก เลือกเด็กทุกคนของโหนดปัจจุบัน
ลูกหลาน เลือกลูกหลาน (children, grandchildren, etc.) ของโหนดปัจจุบัน
ลูกหลานหรือด้วยตนเอง เลือกลูกหลาน (children, grandchildren, etc.) ของโหนดปัจจุบันและโหนดปัจจุบันตัวเอง
ดังต่อไปนี้ เลือกทุกอย่างในเอกสารหลังแท็กปิดของโหนดปัจจุบัน
ต่อไปนี้-พี่น้อง เลือกพี่น้องทั้งหมดหลังจากโหนดปัจจุบัน
namespace เลือกโหนด namespace ทั้งหมดของโหนดปัจจุบัน
ผู้ปกครอง เลือกแม่ของโหนดปัจจุบัน
มาก่อน เลือกปรับโหนดทั้งหมดที่ปรากฏก่อนโหนดปัจจุบันในเอกสารยกเว้นบรรพบุรุษแอตทริบิวต์โหนดและโหนด namespace
ก่อน-พี่น้อง เลือกพี่น้องทั้งหมดก่อนโหนดปัจจุบัน
ตนเอง เลือกโหนดปัจจุบัน

สถานที่เส้นทางการแสดงออก

เส้นทางที่ตั้งสามารถแน่นอนหรือญาติ

เส้นทางที่ตั้งที่แน่นอนเริ่มต้นด้วยการเฉือน ( / ) และเส้นทางที่ตั้งของญาติไม่ได้ ในทั้งสองกรณีเส้นทางสถานที่ประกอบด้วยหนึ่งหรือมากกว่าขั้นตอนแต่ละแยกจากกันโดยเฉือน:

An absolute location path:

/step/step/...

A relative location path:

step/step/...

แต่ละขั้นตอนคือการประเมินกับโหนดในปัจจุบันโหนดชุด

ขั้นตอนประกอบด้วย:

  • แกน (defines the tree-relationship between the selected nodes and the current node)
  • โหนดทดสอบ (identifies a node within an axis)
  • ศูนย์หรือมากกว่าภาค (to further refine the selected node-set)

ไวยากรณ์สำหรับขั้นตอนสถานที่คือ

axisname::nodetest[predicate]

ตัวอย่าง

ตัวอย่าง ผล
เด็ก :: หนังสือ เลือกโหนดหนังสือทั้งหมดที่เป็นลูกของโหนดปัจจุบัน
แอตทริบิวต์ :: lang เลือก lang แอตทริบิวต์ของโหนดปัจจุบัน
เด็ก::* เลือกเด็กองค์ประกอบทั้งหมดของโหนดปัจจุบัน
แอตทริบิวต์ :: * เลือกคุณลักษณะทั้งหมดของโหนดปัจจุบัน
เด็ก :: text() เลือกทั้งหมดเด็กโหนดข้อความของโหนดปัจจุบัน
เด็ก :: node() เลือกเด็กทุกคนของโหนดปัจจุบัน
ลูกหลาน :: หนังสือ เลือกลูกหลานหนังสือทั้งหมดของโหนดปัจจุบัน
บรรพบุรุษ :: หนังสือ เลือกบรรพบุรุษหนังสือทั้งหมดของโหนดปัจจุบัน
ปู่ย่าตายายหรือตนเอง :: หนังสือ เลือกบรรพบุรุษหนังสือทั้งหมดของโหนดปัจจุบัน - และในปัจจุบันได้เป็นอย่างดีถ้ามันเป็นโหนดหนังสือ
เด็ก :: * / เด็กราคา :: เลือกลูกหลานของราคาทั้งหมดของโหนดปัจจุบัน