ตัวอย่าง 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() | เลือกเด็กทุกคนของโหนดปัจจุบัน |
ลูกหลาน :: หนังสือ | เลือกลูกหลานหนังสือทั้งหมดของโหนดปัจจุบัน |
บรรพบุรุษ :: หนังสือ | เลือกบรรพบุรุษหนังสือทั้งหมดของโหนดปัจจุบัน |
ปู่ย่าตายายหรือตนเอง :: หนังสือ | เลือกบรรพบุรุษหนังสือทั้งหมดของโหนดปัจจุบัน - และในปัจจุบันได้เป็นอย่างดีถ้ามันเป็นโหนดหนังสือ |
เด็ก :: * / เด็กราคา :: | เลือกลูกหลานของราคาทั้งหมดของโหนดปัจจุบัน |