ตัวอย่างที่ 1
ไวยากรณ์ XPath พื้นฐานคล้ายกับการค้นหาไฟล์ในระบบไฟล์ หากเส้นทางเริ่มต้นด้วยเครื่องหมายทับ / เส้นทางนั้นจะแสดงเส้นทางที่แน่นอนไปยังองค์ประกอบ
/AAA
เลือกองค์ประกอบราก AAA
<AAA>
<บีบีบี/>
<ซีซีซี/>
<บีบีบี/>
<บีบีบี/>
<DDD>
<บีบีบี/>
</DDD>
<ซีซีซี/>
</AAA>
/AAA/CCC
เลือกองค์ประกอบลูก CCC ทั้งหมดของ AAA
<AAA>
<บีบีบี/>
<ซีซีซี/>
<บีบีบี/>
<บีบีบี/>
<DDD>
<บีบีบี/>
</DDD>
<ซีซีซี/>
</AAA>
/AAA/DDD/BBB
เลือกองค์ประกอบลูกทั้งหมดของ DDD ซึ่งเป็นองค์ประกอบลูกของ AAA
<AAA>
<บีบีบี/>
<ซีซีซี/>
<บีบีบี/>
<บีบีบี/>
<DDD>
<บีบีบี/>
</DDD>
<ซีซีซี/>
</AAA>
ตัวอย่างที่ 2
หากเส้นทางเริ่มต้นด้วยเครื่องหมายทับคู่ // หมายความว่ามีการเลือกองค์ประกอบทั้งหมดในเอกสารที่ตรงตามกฎหลังจากเครื่องหมายทับคู่ // (โดยไม่คำนึงถึงความสัมพันธ์แบบลำดับชั้น) //BBB
เลือกองค์ประกอบ BBB ทั้งหมด
<AAA>
<บีบีบี/>
<ซีซีซี/>
<บีบีบี/>
<DDD>
<บีบีบี/>
</DDD>
<ซีซีซี>
<DDD>
<บีบีบี/>
<บีบีบี/>
</DDD>
</ซีซีซี>
</AAA>
//DDD/BBB
เลือกองค์ประกอบ BBB ทั้งหมดที่มีองค์ประกอบหลักเป็น DDD
<AAA>
<บีบีบี/>
<ซีซีซี/>
<บีบีบี/>
<DDD>
<บีบีบี/>
</DDD>
<ซีซีซี>
<DDD>
<บีบีบี/>
<บีบีบี/>
</DDD>
</ซีซีซี>
</AAA>
ตัวอย่างที่ 3
เครื่องหมายดอกจัน* หมายถึงการเลือกองค์ประกอบทั้งหมดที่อยู่ในเส้นทางก่อนเครื่องหมายดอกจัน
/AAA/ซีซีซี/DDD/*
เลือกองค์ประกอบทั้งหมดที่มีเส้นทางแนบไปกับ /AAA/CCC/DDD
<AAA>
<XXX>
<DDD>
<บีบีบี/>
<บีบีบี/>
<EEE/>
<FFF/>
</DDD>
</XXX>
<ซีซีซี>
<DDD>
<บีบีบี/>
<บีบีบี/>
<EEE/>
<FFF/>
</DDD>
</ซีซีซี>
<ซีซีซี>
<บีบีบี>
<บีบีบี>
<บีบีบี/>
</บีบีบี>
</บีบีบี>
</ซีซีซี>
</AAA>
/*/*/*/BBB
เลือกองค์ประกอบ BBB ทั้งหมดที่มีองค์ประกอบระดับบน 3 รายการ
<AAA>
<XXX>
<DDD>
<บีบีบี/>
<บีบีบี/>
<EEE/>
<FFF/>
</DDD>
</XXX>
<ซีซีซี>
<DDD>
<บีบีบี/>
<บีบีบี/>
<EEE/>
<FFF/>
</DDD>
</ซีซีซี>
<ซีซีซี>
<บีบีบี>
<บีบีบี>
<บีบีบี/>
</บีบีบี>
</บีบีบี>
</ซีซีซี>
</AAA>
-
เลือกองค์ประกอบทั้งหมด
<AAA>
<XXX>
<DDD>
<บีบีบี/>
<บีบีบี/>
<EEE/>
<FFF/>
</DDD>
</XXX>
<ซีซีซี>
<DDD>
<บีบีบี/>
<บีบีบี/>
<EEE/>
<FFF/>
</DDD>
</ซีซีซี>
<ซีซีซี>
<บีบีบี>
<บีบีบี>
<บีบีบี/>
</บีบีบี>
</บีบีบี>
</ซีซีซี>
</AAA>
ตัวอย่างที่ 4
นิพจน์ในเลขกำลังสองสามารถระบุองค์ประกอบเพิ่มเติมได้ โดยที่ตัวเลขแสดงถึงตำแหน่งขององค์ประกอบในชุดการเลือก และฟังก์ชัน Last() แสดงถึงองค์ประกอบสุดท้ายในชุดการ
เลือก
เลือกองค์ประกอบย่อย BBB แรกของ AAA
<AAA>
<บีบีบี/>
<บีบีบี/>
<บีบีบี/>
<บีบีบี/>
</AAA>
/AAA/BBB[สุดท้าย()]
เลือกองค์ประกอบย่อย BBB สุดท้ายของ AAA
<AAA>
<บีบีบี/>
<บีบีบี/>
<บีบีบี/>
<บีบีบี/>
</AAA>
ตัวอย่างที่ 5
//@id
เลือกแอตทริบิวต์รหัสทั้งหมด
<AAA>
<BBB id = "b1"/>
<BBB id = "b2"/>
<ชื่อ BBB = "bbb"/>
<บีบีบี/>
</AAA>
//บีบีบี[@id]
เลือกองค์ประกอบ BBB ที่มีแอตทริบิวต์รหัส
<AAA>
<BBB id = "b1"/>
<BBB id = "b2"/>
<ชื่อ BBB = "bbb"/>
<บีบีบี/>
</AAA>
//บีบีบี[@ชื่อ]
เลือกองค์ประกอบ BBB ที่มีแอตทริบิวต์ name
<AAA>
<BBB id = "b1"/>
<BBB id = "b2"/>
<ชื่อ BBB = "bbb"/>
<บีบีบี/>
</AAA>
//บีบีบี[@*]
เลือกองค์ประกอบ BBB ด้วยคุณลักษณะใดๆ
<AAA>
<BBB id = "b1"/>
<BBB id = "b2"/>
<ชื่อ BBB = "bbb"/>
<บีบีบี/>
</AAA>
//BBB[ไม่ใช่(@*)]
เลือกองค์ประกอบ BBB ที่ไม่มีแอตทริบิวต์
<AAA>
<BBB id = "b1"/>
<BBB id = "b2"/>
<ชื่อ BBB = "bbb"/>
<บีบีบี/>
</AAA>
ตัวอย่างที่ 6
ค่าของแอตทริบิวต์สามารถใช้เป็นเกณฑ์การเลือกได้ ฟังก์ชัน Normalize-space จะลบช่องว่างนำหน้าและต่อท้าย และแทนที่สตริงช่องว่างที่ต่อเนื่องกันด้วยช่องว่างเดียว
//BBB[@id='b1']
เลือกองค์ประกอบ BBB ที่มีรหัสแอตทริบิวต์และค่าของมันคือ 'b1'
<AAA>
<BBB id = "b1"/>
<ชื่อ BBB = " bbb "/>
<ชื่อ BBB = "bbb"/>
</AAA>
//BBB[@name='bbb']
เลือกองค์ประกอบ BBB ที่มีชื่อแอตทริบิวต์และค่าของมันคือ 'bbb'
<AAA>
<BBB id = "b1"/>
<ชื่อ BBB = " bbb "/>
<ชื่อ BBB = "bbb"/>
</AAA>
//BBB[normalize-space(@name)='bbb']
เลือกองค์ประกอบ BBB ที่มีชื่อแอตทริบิวต์และค่าของมัน (หลังจากลบช่องว่างนำหน้าและต่อท้ายโดยใช้ฟังก์ชัน Normalize-space) คือ 'bbb'
<AAA>
<BBB id = "b1"/>
<ชื่อ BBB = " bbb "/>
<ชื่อ BBB = "bbb"/>
</AAA>
ตัวอย่างที่ 7
ฟังก์ชัน count() สามารถนับจำนวนองค์ประกอบที่เลือก
//*[count(BBB)=2]
เลือกองค์ประกอบที่มีองค์ประกอบย่อย BBB 2 รายการ
<AAA>
<ซีซีซี>
<บีบีบี/>
<บีบีบี/>
<บีบีบี/>
</ซีซีซี>
<DDD>
<บีบีบี/>
<บีบีบี/>
</DDD>
<อีอี>
<ซีซีซี/>
<DDD/>
</EE>
</AAA>
//*[นับ(*)=2]
เลือกองค์ประกอบที่มีลูก 2 คน
<AAA>
<ซีซีซี>
<บีบีบี/>
<บีบีบี/>
<บีบีบี/>
</ซีซีซี>
<DDD>
<บีบีบี/>
<บีบีบี/>
</DDD>
<อีอี>
<ซีซีซี/>
<DDD/>
</EE>
</AAA>
//*[นับ(*)=3]
เลือกองค์ประกอบที่มีองค์ประกอบย่อย 3 รายการ
<AAA>
<ซีซีซี>
<บีบีบี/>
<บีบีบี/>
<บีบีบี/>
</ซีซีซี>
<DDD>
<บีบีบี/>
<บีบีบี/>
</DDD>
<อีอี>
<ซีซีซี/>
<DDD/>
</EE>
</AAA>
ตัวอย่างที่ 8
ฟังก์ชัน name() ส่งคืนชื่อขององค์ประกอบ ฟังก์ชัน start-with() ส่งคืน true เมื่อสตริงพารามิเตอร์แรกของฟังก์ชันเริ่มต้นด้วยอักขระพารามิเตอร์ตัวที่สอง และฟังก์ชัน contains() ส่งคืน true เมื่อพารามิเตอร์สตริงตัวแรกส่งคืน จริงเมื่อรวมพารามิเตอร์สตริงที่สอง
//*[name()='BBB']
เลือกองค์ประกอบทั้งหมดชื่อ BBB (ที่นี่เทียบเท่ากับ //BBB)
<AAA>
<สำเนาลับ>
<บีบีบี/>
<บีบีบี/>
<บีบีบี/>
</สำเนาลับ>
<ดีดีบี>
<บีบีบี/>
<บีบีบี/>
</ดีดีบี>
<บีอีซี>
<ซีซีซี/>
<ดีบีดี/>
</บีอีซี>
</AAA>
//*[เริ่มต้นด้วย(ชื่อ(),'B')]
เลือกองค์ประกอบทั้งหมดที่มีชื่อขึ้นต้นด้วย "B"
<AAA>
<สำเนาลับ>
<บีบีบี/>
<บีบีบี/>
<บีบีบี/>
</สำเนาลับ>
<ดีดีบี>
<บีบีบี/>
<บีบีบี/>
</ดีดีบี>
<บีอีซี>
<ซีซีซี/>
<ดีบีดี/>
</บีอีซี>
</AAA>
//*[มี(ชื่อ(),'C')]
เลือกองค์ประกอบทั้งหมดที่มีชื่อประกอบด้วย "C"
<AAA>
<สำเนาลับ>
<บีบีบี/>
<บีบีบี/>
<บีบีบี/>
</สำเนาลับ>
<ดีดีบี>
<บีบีบี/>
<บีบีบี/>
</ดีดีบี>
<บีอีซี>
<ซีซีซี/>
<ดีบีดี/>
</บีอีซี>
</AAA>
ตัวอย่างที่ 9
สามารถรวมหลายเส้นทางเข้าด้วยกันโดยใช้ตัวคั่น |
//CCC | //BBB
เลือกองค์ประกอบ CCC และ BBB ทั้งหมด
<AAA>
<บีบีบี/>
<ซีซีซี/>
<DDD>
<ซีซีซี/>
</DDD>
<EEE/>
</AAA>
/AAA/EEE | //BBB
เลือกองค์ประกอบ BBB ทั้งหมดและองค์ประกอบ EEE ทั้งหมดที่เป็นลูกของ AAA
<AAA>
<บีบีบี/>
<ซีซีซี/>
<DDD>
<ซีซีซี/>
</DDD>
<EEE/>
</AAA>
/AAA/EEE |. //DDD/CCC |. //BBB
ไม่มีการจำกัดจำนวนเส้นทางที่สามารถรวมเข้าด้วยกันได้
<AAA>
<บีบีบี/>
<ซีซีซี/>
<DDD>
<ซีซีซี/>
</DDD>
<EEE/>
</AAA>
ตัวอย่างที่ 10
แกนลูกมีองค์ประกอบลูกของโหนดบริบท เนื่องจากเป็นแกนเริ่มต้นจึงสามารถละเว้น
ได้
เทียบเท่ากับ /child::AAA
<AAA>
<บีบีบี/>
<ซีซีซี/>
</AAA>
/เด็ก::AAA
เทียบเท่ากับ /AAA
<AAA>
<บีบีบี/>
<ซีซีซี/>
</AAA>
/AAA/BBB
เทียบเท่ากับ /child::AAA/child::BBB
<AAA>
<บีบีบี/>
<ซีซีซี/>
</AAA>
/เด็ก::AAA/เด็ก::BBB
เทียบเท่ากับ /AAA/BBB
<AAA>
<บีบีบี/>
<ซีซีซี/>
</AAA>
/เด็ก::AAA/BBB
ทั้งสองสามารถรวมกันได้
<AAA>
<บีบีบี/>
<ซีซีซี/>
</AAA>
ตัวอย่างที่ 11
แกนลูกหลานประกอบด้วยโหนดลูกหลานของโหนดบริบท ฯลฯ ดังนั้นแกนลูกหลานจึงไม่มีแอตทริบิวต์และโหนดเนมสเป
ซ
เลือกลูกหลานทั้งหมดขององค์ประกอบรูทของเอกสาร นั่นคือ องค์ประกอบทั้งหมดจะถูกเลือก
<AAA>
<บีบีบี>
<DDD>
<ซีซีซี>
<DDD/>
<EEE/>
</ซีซีซี>
</DDD>
</บีบีบี>
<ซีซีซี>
<DDD>
<อีอี>
<DDD>
<FFF/>
</DDD>
</EEE>
</DDD>
</ซีซีซี>
</AAA>
/AAA/BBB/ลูกหลาน::*
เลือกองค์ประกอบสืบทอดทั้งหมดของ /AAA/BBB
<AAA>
<บีบีบี>
<DDD>
<ซีซีซี>
<DDD/>
<EEE/>
</ซีซีซี>
</DDD>
</บีบีบี>
<ซีซีซี>
<DDD>
<อีอี>
<DDD>
<FFF/>
</DDD>
</EE>
</DDD>
</ซีซีซี>
</AAA>
//CCC/ลูกหลาน::*
เลือกองค์ประกอบทั้งหมดที่มี CCC อยู่ในหมู่บรรพบุรุษ
<AAA>
<บีบีบี>
<DDD>
<ซีซีซี>
<DDD/>
<EEE/>
</ซีซีซี>
</DDD>
</บีบีบี>
</AAA>