XPath ใช้นิพจน์เส้นทางเพื่อเลือกโหนดหรือโหนดชุดในเอกสาร XML โหนดจะถูกเลือกโดยทำตามเส้นทางหรือขั้นตอน
ตัวอย่าง 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 ใช้นิพจน์เส้นทางเพื่อเลือกโหนในเอกสาร XML โหนดจะถูกเลือกโดยทำตามเส้นทางหรือขั้นตอน นิพจน์เส้นทางมีประโยชน์มากที่สุดอยู่ด้านล่าง:
การแสดงออก | ลักษณะ |
---|---|
nodename | เลือกโหนดทั้งหมดที่มีชื่อ " nodename " |
/ | เลือกจากโหนดราก |
// | เลือกโหนดในเอกสารจากโหนดปัจจุบันที่ตรงกับการเลือกที่ไม่ว่าพวกเขาอยู่ที่ไหน |
. | เลือกโหนดปัจจุบัน |
.. | เลือกแม่ของโหนดปัจจุบัน |
@ | เลือกคุณลักษณะ |
ในตารางด้านล่างเราได้ระบุไว้แสดงออกเส้นทางบางส่วนและผลของการแสดงออกที่:
การแสดงออกเส้นทาง | ผล |
---|---|
ร้านหนังสือ | เลือกโหนดทั้งหมดที่มีชื่อ "bookstore" |
/ ร้านหนังสือ | เลือกร้านหนังสือองค์ประกอบราก Note: หากเส้นทางที่เริ่มต้นด้วยการเฉือน ( / ) มันก็แสดงให้เห็นถึงเส้นทางสัมบูรณ์ไปยังองค์ประกอบ! |
ร้านหนังสือ / หนังสือ | เลือกองค์ประกอบหนังสือทั้งหมดที่เป็นลูกของร้านหนังสือ |
// หนังสือ | เลือกองค์ประกอบหนังสือทั้งหมดไม่ว่าพวกเขาจะอยู่ในเอกสาร |
ร้านหนังสือ // หนังสือ | เลือกองค์ประกอบหนังสือทั้งหมดที่เป็นลูกหลานขององค์ประกอบร้านหนังสือไม่ว่าที่พวกเขาอยู่ภายใต้องค์ประกอบของร้านหนังสือ |
// @ lang | เลือกคุณลักษณะทั้งหมดที่มีชื่อ lang |
ภาค
ภาคที่มีการใช้ในการหาโหนดที่เฉพาะเจาะจงหรือโหนดที่มีค่าที่เฉพาะเจาะจง
ภาคที่ฝังตัวอยู่เสมอในวงเล็บ
ในตารางด้านล่างเราได้ระบุไว้การแสดงออกบางอย่างกับเส้นทางภาคและผลของการแสดงออกที่:
การแสดงออกเส้นทาง | ผล |
---|---|
/ ร้านหนังสือ / หนังสือ [1] | เลือกองค์ประกอบที่หนังสือเล่มแรกที่เป็นลูกขององค์ประกอบที่ร้านหนังสือ Note: ใน IE 5,6,7,8,9 โหนดแรกคือ [0], แต่ตาม W3C มันเป็น [1] เพื่อแก้ปัญหานี้ใน IE ตั้ง SelectionLanguage เพื่อ XPath: In JavaScript: xml setProperty("SelectionLanguage","XPath") ; |
/ ร้านหนังสือ / หนังสือ [ last() ] | เลือกองค์ประกอบที่หนังสือเล่มสุดท้ายที่เป็นลูกขององค์ประกอบที่ร้านหนังสือ |
/ ร้านหนังสือ / หนังสือ [ last() -1] | เลือกสุดท้าย แต่หนังสือเล่มหนึ่งในองค์ประกอบที่เป็นลูกขององค์ประกอบที่ร้านหนังสือ |
/ ร้านหนังสือ / หนังสือ [ position() <3] | เลือกแรกที่สององค์ประกอบหนังสือที่เป็นลูกขององค์ประกอบที่ร้านหนังสือ |
// ชื่อ [@lang] | เลือกทุกองค์ประกอบของชื่อที่มีแอตทริบิวต์ชื่อ lang |
// ชื่อ [@ lang = 'en'] | เลือกทุกองค์ประกอบของชื่อที่มีแอตทริบิวต์ "lang" ที่มีค่าของ "en" |
/bookstore/book[price>35.00] | เลือกทุกองค์ประกอบของธาตุหนังสือร้านหนังสือที่มีองค์ประกอบของราคาที่มีค่ามากกว่า 35.00 |
/bookstore/book[price>35.00]/title | เลือกทุกองค์ประกอบชื่อขององค์ประกอบของธาตุหนังสือร้านหนังสือที่มีองค์ประกอบของราคาที่มีค่ามากกว่า 35.00 |
เลือกโหนดที่ไม่รู้จัก
สัญลักษณ์ XPath สามารถนำมาใช้เพื่อเลือกโหนด XML ที่ไม่รู้จัก
Wildcard | ลักษณะ |
---|---|
* | ตรงกับโหนดองค์ประกอบใด ๆ |
@* | ตรงกับโหนดแอตทริบิวต์ใด ๆ |
node() | ตรงกับโหนดของชนิดใด |
ในตารางด้านล่างเราได้ระบุไว้แสดงออกเส้นทางบางส่วนและผลของการแสดงออกที่:
การแสดงออกเส้นทาง | ผล |
---|---|
/ ร้านหนังสือ / * | เลือกทุกโหนดองค์ประกอบลูกขององค์ประกอบร้านหนังสือ |
// * | เลือกองค์ประกอบทั้งหมดในเอกสาร |
//หัวข้อ[@*] | เลือกองค์ประกอบชื่อทั้งหมดที่มีอย่างน้อยหนึ่งแอตทริบิวต์ใด ๆ |
การเลือกหลายเส้นทาง
โดยการใช้ | ผู้ประกอบการในการแสดงออก XPath คุณสามารถเลือกหลายเส้นทาง
ในตารางด้านล่างเราได้ระบุไว้แสดงออกเส้นทางบางส่วนและผลของการแสดงออกที่:
การแสดงออกเส้นทาง | ผล |
---|---|
// หนังสือ / ชื่อ | // หนังสือ / ราคา | เลือกทั้งหมดชื่อและราคาองค์ประกอบของธาตุหนังสือทั้งหมด |
// ชื่อ | //ราคา | เลือกทั้งหมดชื่อและราคาองค์ประกอบในเอกสาร |
/ ร้านหนังสือ / หนังสือ / ชื่อ | //ราคา | เลือกทุกองค์ประกอบชื่อขององค์ประกอบของธาตุหนังสือร้านหนังสือและทุกองค์ประกอบของราคาในเอกสาร |