กฎระเบียบ XPath

XPath ใช้หนทางแสดงเพื่อเลือกจุดหรือจุดที่อยู่ในเอกสาร XML จุดที่อยู่ในเอกสารนั้นถูกเลือกด้วยหนทาง (path) หรือ step。

เอกสาร 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。

ในนี้เราได้ระบุหนทางแสดงที่ใช้งานมากที่สุด:

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

ตัวอย่าง

ในตารางด้านล่างนี้ เราได้ระบุหนทางแสดงและผลลัพธ์ของหนทางนั้น:

expression ทางหลวง ผลลัพธ์
bookstore เลือกทุกโครงการลูกของ element bookstore。
/bookstore

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

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

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

predicate (Predicates)

predicate ใช้เพื่อหา node ที่เป็นไปได้หรือ node ที่มี value ที่กำหนด

predicate ถูกจัดในวงเล็บ

ตัวอย่าง

ในตารางด้านล่างนี้ เราได้ระบุ expression ทางหลวงที่มี predicate และผลลัพธ์ของมัน:

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

เลือก node ที่ไม่ทราบ

wildcard ของ XPath ใช้เพื่อเลือก element XML ที่ไม่ทราบ

wildcard คำอธิบาย
* ตรวจสอบของ node element
@* ตรวจสอบของ node attribute
node() ตรวจสอบของ node ทุกชนิด

ตัวอย่าง

ในตารางด้านล่างนี้ เราได้ระบุ expression ทางหลวงและผลลัพธ์ของมัน:

expression ทางหลวง ผลลัพธ์
/bookstore/* เลือกทั้งหมดของ child element ของ element bookstore
//* เลือกทั้งหมดของ element ในเอกสาร
//title[@*] เลือกทั้งหมดของ element title ที่มี attribute

เลือกหลาย path

ด้วยการใช้การคำนวณ operator "|" ใน expression ทางหลวง คุณสามารถเลือกหลาย path ได้

ตัวอย่าง

ในตารางด้านล่างนี้ เราได้ระบุ expression ทางหลวงและผลลัพธ์ของมัน:

expression ทางหลวง ผลลัพธ์
//book/title | //book/price เลือกทั้งหมดของ element book ใน tag title และ element price。
//title | //price 選擇文檔中的所有 title 和 price 元素。
/bookstore/book/title | //price 選擇屬於 bookstore 元素的 book 元素的所 有 title 元素,以及文檔中所有的 price 元素。