ระบบเกณฑ์ XPath

XPath ใช้ประโยคนิยายเลือกจุดตัวหรือชุดจุดตัวในเอกสาร XML จะเลือกจุดตัวผ่านทางทาง (path) หรือ ขั้น (steps) ที่เลือก

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

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

<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>
<book>
  <title lang="eng">Harry Potter</title>
  <price>29.99</price>
</book>
<book>
  <title lang="eng">Learning XML</title>
  <price>39.95</price>
</book>
</bookstore>

เลือกจุดตัว

XPath ใช้ประโยคนิยายเลือกจุดตัวในเอกสาร XML จะเลือกจุดตัวผ่านทางทางหรือ step ที่เลือก

ตามไปนี้นับได้ว่าเป็นองค์ประกอบทางพิษณ์ที่มีประโยชน์ที่สุด:

องค์ประกอบ การอธิบาย
nodename เลือกทุกองค์ประกอบที่เป็นลูกของตัวองค์ประกอบนี้。
/ เลือกจากจุดต้นฐานรากขององค์ประกอบ。
// เลือกองค์ประกอบในเอกสารที่ตรงกับองค์ประกอบที่มีความตรงของทางพิษณ์ที่ตรงกับองค์ประกอบปัจจุบัน โดยไม่เกี่ยวกับตำแหน่งของมันในเอกสาร。
. เลือกองค์ประกอบปัจจุบัน。
.. เลือกองค์ประกอบต้นนอกของตัวองค์ประกอบปัจจุบัน。
@ เลือกคุณสมบัติ。

ตัวอย่าง

ในตารางด้านล่าง สามารถดูองค์ประกอบทางพิษณ์และผลลัพธ์ของพิษณ์นั้นตามไปนี้:

แบบแบ่งปันทางแยก ผลลัพธ์
bookstore เลือกองค์ประกอบทั้งหมดที่เป็นลูกขององค์ประกอบ bookstore。
/bookstore

เลือกองค์ประกอบ root bookstore。

หมายเหตุ: ถ้าทางแสดงของหลักทางออกเริ่มด้วยขีดเส้นทาง ( / ) แล้ว หลักทางออกนั้นจะเป็นทางออกที่แน่นอนไปถึงองค์ประกอบใดๆ และไม่เกี่ยวกับตำแหน่งของมันใน bookstore ก็ตาม!

bookstore/book เลือกองค์ประกอบ book ทั้งหมดที่เป็นลูกองค์ประกอบขององค์ประกอบ bookstore。
//book เลือกองค์ประกอบ book ทั้งหมดที่เป็นลูกองค์ประกอบทั้งหมดในเอกสารไม่ว่าตัวนั้นจะอยู่ที่ไหนในเอกสารก็ตาม。
bookstore//book เลือกองค์ประกอบ book ทั้งหมดที่เป็นลูกหลังขององค์ประกอบ bookstore ไม่ว่าตัวนั้นจะอยู่ที่ไหนใน bookstore ก็ตาม。
//@lang เลือกคุณสมบัติที่ชื่อ lang ทั้งหมด。

คำพิษณ์ (Predicates)

คำพิษณ์ใช้ต่อหาจุดของตามหลังหรือจุดของที่มีค่าที่ระบุโดยเฉพาะ。

คำพิษณ์ถูกปิดลงด้วยวงกลมทางซ้ายขวาของข้อความ。

ตัวอย่าง

ในตารางด้านล่าง สามารถดูองค์ประกอบทางพิษณ์และผลลัพธ์ของพิษณ์นั้นตามไปนี้:

แบบแบ่งปันทางแยก ผลลัพธ์
/bookstore/book[1] เลือกองค์ประกอบ book องค์ประกอบที่อยู่ที่ต้นของ bookstore ลูกองค์ประกอบ。
/bookstore/book[last()] เลือกองค์ประกอบ book องค์ประกอบที่อยู่ที่ท้ายของ bookstore ลูกองค์ประกอบ。
/bookstore/book[last()-1] เลือกองค์ประกอบ book องค์ประกอบที่อยู่ที่ท้ายของ bookstore ลูกองค์ประกอบสององค์ประกอบที่หน้าต้นทางเดียวกัน。
/bookstore/book[position()<3] เลือกองค์ประกอบ book สององค์ประกอบแรกที่เป็นลูกขององค์ประกอบ bookstore。
//title[@lang] เลือกองค์ประกอบ title ที่มีคุณสมบัติชื่อ lang。
//title[@lang='eng'] เลือกองค์ประกอบ title ทั้งหมด ที่มีค่าของคุณสมบัติ lang ว่า eng。
/bookstore/book[price>35.00] เลือกองค์ประกอบ bookstore ทั้งหมด และองค์ประกอบ book ที่มีค่าขององค์ประกอบ price มากกว่า 35.00。
/bookstore/book[price>35.00]/title เลือกทุก element ของ title ใน element ของ book ใน element ของ bookstore ที่มี element ของ price ที่มีค่ามากกว่า 35.00

เลือกจุดหมายที่ไม่ทราบก่อน

ตัวแทน XPath สามารถใช้เลือก XML element ที่ไม่ทราบก่อน

ตัวแทน การอธิบาย
* ตรงกันข้ามกับประเภทของ element
@* ตรงกันข้ามกับประเภทของอัตริบิวต์
node() ตรงกันข้ามกับประเภทของจุดหมาย

ตัวอย่าง

ในตารางด้านล่าง นักเรียนรู้ของเราจะแสดงแบบแบ่งปันทางแยกและผลลัพธ์ของแบบแบ่งปันทางแยก

แบบแบ่งปันทางแยก ผลลัพธ์
/bookstore/* เลือกทุก child element ของ element ของ bookstore
//* เลือกทุก element ในเอกสาร
//title[@*] เลือกทุก element ของ title ที่มีอัตрибิวต์

เลือกหลายแบบแบ่งปัน

ด้วยการใช้ประกาศทางแยก "|" ในแบบแบ่งปันทางแยก คุณสามารถเลือกหลายแบบแบ่งปัน

ตัวอย่าง

ในตารางด้านล่าง นักเรียนรู้ของเราจะแสดงแบบแบ่งปันทางแยกและผลลัพธ์ของแบบแบ่งปันทางแยก

แบบแบ่งปันทางแยก ผลลัพธ์
//book/title | //book/price เลือกทุก element ของ title และ price ใน element ของ book
//title | //price เลือกทุก element ของ title และ price ในเอกสาร
/bookstore/book/title | //price เลือกทุก element ของ title ใน element ของ bookstore และทุก element ของ price ในเอกสาร