ไวยากรณ์ XPath
ใช้นิพจน์ XPath เส้นทางเพื่อเลือกโหนดในเอกสาร XML หรือชุดของโหนด โดยโหนดตามเส้นทาง (เส้นทาง) หรือขั้นตอน (ขั้นตอน) เพื่อเลือก
เช่นเอกสาร XML
เราจะใช้เอกสาร XML ในตัวอย่างด้านล่าง
<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 หรือตามเส้นทางผ่านโหนดเพื่อเลือกขั้นตอน ข้างล่างนี้เป็นสำนวนที่เส้นทางที่มีประโยชน์มากที่สุด:
การแสดงออก | ลักษณะ |
---|---|
nodename | เลือกทั้งหมดโหนดลูกของโหนดนี้ |
/ | เลือกจากโหนดราก |
// | เลือกเอกสารจากโหนดการจับคู่ที่เลือกในปัจจุบันโหนดโดยไม่คำนึงถึงตำแหน่งของพวกเขา |
. | เลือกโหนดปัจจุบัน |
.. | เลือกแม่ของโหนดปัจจุบัน |
แอท | เลือก Properties |
ในตารางด้านล่างเราได้ระบุไว้บางส่วนของการแสดงออกเส้นทางและผลของการแสดงออกไปนี้:
เส้นทางการแสดงออก | ผล |
---|---|
ร้านหนังสือ | เลือกทั้งหมดโหนดลูกขององค์ประกอบที่ร้านหนังสือ |
/ ร้านหนังสือ | เลือกร้านหนังสือองค์ประกอบราก หมายเหตุ: หากเส้นทางที่เริ่มต้นด้วยการทับ (/) เส้นทางที่เป็นตัวแทนของเส้นทางสัมบูรณ์ไปยังองค์ประกอบเสมอ! |
ร้านหนังสือ / หนังสือ | เลือกองค์ประกอบย่อยที่อยู่ในร้านหนังสือองค์ประกอบหนังสือทั้งหมด |
// หนังสือ | เลือกหนังสือเล่มย่อยองค์ประกอบทั้งหมดโดยไม่คำนึงถึงตำแหน่งของพวกเขาในเอกสาร |
ร้านหนังสือ // หนังสือ | เลือกองค์ประกอบหนังสือทั้งหมดที่เป็นลูกหลานขององค์ประกอบร้านหนังสือไม่ว่าสิ่งที่ตำแหน่งที่พวกเขาอยู่ในและภายใต้ร้านหนังสือ |
// @ หลังสวน | เลือกทั้งหมดของคุณสมบัติที่มีชื่อหรั่ง |
กริยา (Predicates)
กริยาใช้ในการค้นหาโหนดที่เฉพาะเจาะจงหรือโหนดที่มีค่าที่ระบุ
กริยาจะถูกฝังอยู่ในวงเล็บ
ในตารางด้านล่างเราได้จดทะเบียนการแสดงออกบางอย่างกับเส้นทางภาคและผลของการแสดงออกไปนี้:
เส้นทางการแสดงออก | ผล |
---|---|
/ หนังสือ / หนังสือ [1] | เลือกองค์ประกอบย่อยที่อยู่ในร้านหนังสือองค์ประกอบหนังสือเล่มแรก |
/ หนังสือ / หนังสือ [ที่ผ่านมา ()] | เลือกร้านหนังสือองค์ประกอบย่อยที่อยู่ในองค์ประกอบของหนังสือเล่มสุดท้าย |
/ หนังสือ / หนังสือ [ที่ผ่านมา () - 1] | เลือกองค์ประกอบย่อยที่อยู่ในร้านหนังสือซึ่งกันและกันองค์ประกอบหนังสือเล่มที่สอง |
/ หนังสือ / หนังสือ [ตำแหน่ง () <3] | เลือกแรกที่สององค์ประกอบของธาตุหนังสือร้านหนังสือที่อยู่ในองค์ประกอบย่อย |
// ชื่อเรื่อง [@lang] | เลือกแอตทริบิวต์ทั้งหมดชื่อหรั่งมีองค์ประกอบชื่อ |
// ชื่อเรื่อง [@ lang = 'Eng'] | เลือกทั้งหมดองค์ประกอบชื่อและองค์ประกอบเหล่านี้มีค่า Eng Lang แอตทริบิวต์ |
/bookstore/book[price>35.00] | เลือกทุกองค์ประกอบของธาตุหนังสือร้านหนังสือและความคุ้มค่าขององค์ประกอบราคาที่ต้องมากกว่า 35.00 |
/bookstore/book[price>35.00]/title | เลือกทุกองค์ประกอบชื่อขององค์ประกอบของธาตุหนังสือร้านหนังสือและประเด็นค่าขององค์ประกอบที่ราคาจะยิ่งกว่า 35.00 |
เลือกโหนดที่ไม่รู้จัก
สัญลักษณ์ XPath สามารถใช้ในการเลือกองค์ประกอบ XML ที่ไม่รู้จัก
wildcard | ลักษณะ |
---|---|
* * * * | ตรงกับโหนดองค์ประกอบใด ๆ |
@ * | ตรงกับโหนดแอตทริบิวต์ใด ๆ |
โหนด () | ตรงกับประเภทของโหนดใด ๆ |
ในตารางด้านล่างที่เราได้ระบุไว้บางเส้นทางการแสดงออกเช่นเดียวกับผลของการแสดงออกเหล่านี้:
เส้นทางการแสดงออก | ผล |
---|---|
/ หนังสือ / * | เลือกองค์ประกอบที่ร้านหนังสือทุกองค์ประกอบของเด็ก |
// * | เลือกองค์ประกอบทั้งหมดในเอกสาร |
// ชื่อเรื่อง [@ *] | เลือกองค์ประกอบทั้งหมดที่มีคุณลักษณะชื่อ |
เลือกหลายเส้นทาง
โดยใช้เส้นทางการแสดงออก "|" ผู้ประกอบคุณสามารถเลือกหลายเส้นทาง
ในตารางด้านล่างที่เราได้ระบุไว้บางเส้นทางการแสดงออกเช่นเดียวกับผลของการแสดงออกเหล่านี้:
เส้นทางการแสดงออก | ผล |
---|---|
// หนังสือ / ชื่อ | // หนังสือ / ราคา | เลือกชื่อหนังสือและราคาองค์ประกอบขององค์ประกอบทั้งหมด |
// ชื่อ | // ราคา | เลือกเอกสารทั้งหมดของชื่อและราคาองค์ประกอบ |
/ หนังสือ / หนังสือ / ชื่อ | // ราคา | เลือกหนังสือที่ร้านหนังสือองค์ประกอบองค์ประกอบที่อยู่ในทุกองค์ประกอบของชื่อและเอกสารทุกองค์ประกอบของราคา |