مثال 1
يشبه بناء جملة XPath الأساسي تحديد موقع الملفات في نظام الملفات. إذا كان المسار يبدأ بشرطة مائلة /، فإن المسار يمثل مسارًا مطلقًا لعنصر ما.
/آآ
حدد العنصر الجذر AAA
<آآ>
<بب/>
<CCC/>
<بب/>
<بب/>
<دي دي دي>
<بب/>
</DDD>
<CCC/>
</AAA>
/AAA/CCC
حدد كافة العناصر التابعة لـ CCC لـ AAA
<آآ>
<بب/>
<CCC/>
<بب/>
<بب/>
<دي دي دي>
<بب/>
</DDD>
<CCC/>
</AAA>
/AAA/DDD/BBB
تحديد كافة العناصر التابعة لـ DDD، والعنصر الفرعي لـ AAA
<آآ>
<بب/>
<CCC/>
<بب/>
<بب/>
<دي دي دي>
<بب/>
</DDD>
<CCC/>
</AAA>
مثال 2
إذا كان المسار يبدأ بشرطة مائلة مزدوجة //، فهذا يعني أنه تم تحديد جميع العناصر الموجودة في المستند والتي تفي بالقواعد بعد الشرطة المائلة المزدوجة // (بغض النظر عن العلاقة الهرمية) // BBB
حدد كافة عناصر BBB
<آآ>
<بب/>
<CCC/>
<بب/>
<دي دي دي>
<بب/>
</DDD>
<CCC>
<دي دي دي>
<بب/>
<بب/>
</DDD>
</CCC>
</AAA>
//DD/BBB
حدد كافة عناصر BBB التي يكون عنصرها الأصلي هو DDD
<آآ>
<بب/>
<CCC/>
<بب/>
<دي دي دي>
<بب/>
</DDD>
<CCC>
<دي دي دي>
<بب/>
<بب/>
</DDD>
</CCC>
</AAA>
مثال 3
تعني العلامة النجمية* تحديد جميع العناصر الموجودة بجوار المسار قبل العلامة النجمية
/AAA/CCC/DDD/*
حدد كافة العناصر ذات المسارات المرفقة بـ /AAA/CCC/DDD
<آآ>
<XXX>
<دي دي دي>
<بب/>
<بب/>
<EEE/>
<ففف/>
</DDD>
</XXX>
<CCC>
<دي دي دي>
<بب/>
<بب/>
<EEE/>
<ففف/>
</DDD>
</CCC>
<CCC>
<بب>
<بب>
<بب/>
</بب>
</بب>
</CCC>
</AAA>
/*/*/*/BBB
حدد جميع عناصر BBB التي تحتوي على 3 عناصر سلف
<آآ>
<XXX>
<دي دي دي>
<بب/>
<بب/>
<EEE/>
<ففف/>
</DDD>
</XXX>
<CCC>
<دي دي دي>
<بب/>
<بب/>
<EEE/>
<ففف/>
</DDD>
</CCC>
<CCC>
<بب>
<بب>
<بب/>
</بب>
</بب>
</CCC>
</AAA>
//*
حدد كافة العناصر
<آآ>
<XXX>
<دي دي دي>
<بب/>
<بب/>
<EEE/>
<ففف/>
</DDD>
</XXX>
<CCC>
<دي دي دي>
<بب/>
<بب/>
<EEE/>
<ففف/>
</DDD>
</CCC>
<CCC>
<بب>
<بب>
<بب/>
</بب>
</بب>
</CCC>
</AAA>
مثال 4
يمكن أن يحدد التعبير الموجود في الرقم المربع العنصر أيضًا، حيث يمثل الرقم موضع العنصر في مجموعة التحديد، وتمثل الدالة last() العنصر الأخير في مجموعة التحديد
/AAA/BBB[1]
.
حدد العنصر الفرعي BBB الأول لـ AAA
<آآ>
<بب/>
<بب/>
<بب/>
<بب/>
</AAA>
/AAA/BBB[الأخيرة ()]
حدد العنصر التابع BBB الأخير لـ AAA
<آآ>
<بب/>
<بب/>
<بب/>
<بب/>
</AAA>
مثال 5
//@بطاقة تعريف
حدد كافة سمات الهوية
<آآ>
<معرف BBB = "b1"/>
<معرف BBB = "b2"/>
<اسم BBB = "bbb"/>
<بب/>
</AAA>
//بب[@id]
حدد عناصر BBB ذات سمات المعرف
<آآ>
<معرف BBB = "b1"/>
<معرف BBB = "b2"/>
<اسم BBB = "bbb"/>
<بب/>
</AAA>
//بب[@الاسم]
حدد عنصر BBB مع سمة الاسم
<آآ>
<معرف BBB = "b1"/>
<معرف BBB = "b2"/>
<اسم BBB = "bbb"/>
<بب/>
</AAA>
//بب[@*]
حدد عناصر BBB بأي سمات
<آآ>
<معرف BBB = "b1"/>
<معرف BBB = "b2"/>
<اسم BBB = "bbb"/>
<بب/>
</AAA>
//BBB[ليس (@*)]
حدد عناصر BBB بدون سمات
<آآ>
<معرف BBB = "b1"/>
<معرف BBB = "b2"/>
<اسم BBB = "bbb"/>
<بب/>
</AAA>
مثال 6
يمكن استخدام قيمة السمة كمعيار تحديد. تقوم وظيفة تطبيع المسافة بإزالة المسافات البادئة والزائدة، واستبدال سلاسل المسافات المتتالية بمسافة واحدة
//BBB[@id='b1']
حدد عنصر BBB الذي يحتوي على معرف السمة وقيمته 'b1'
<آآ>
<معرف BBB = "b1"/>
<اسم BBB = "bbb "/>
<اسم BBB = "bbb"/>
</AAA>
//BBB[@name='bbb']
حدد عنصر BBB الذي يحتوي على اسم السمة وقيمته 'bbb'
<آآ>
<معرف BBB = "b1"/>
<اسم BBB = "bbb "/>
<اسم BBB = "bbb"/>
</AAA>
//BBB[تطبيع المسافة(@name)='bbb']
حدد عنصر BBB الذي يحتوي على اسم السمة وقيمته (بعد إزالة المسافات البادئة والزائدة باستخدام وظيفة تطبيع المسافة) هو 'bbb'
<آآ>
<معرف BBB = "b1"/>
<اسم BBB = "bbb "/>
<اسم BBB = "bbb"/>
</AAA>
مثال 7
يمكن لوظيفة count() حساب عدد العناصر المحددة
//*[count(BBB)=2]
حدد العناصر التي تحتوي على عنصرين فرعيين BBB
<آآ>
<CCC>
<بب/>
<بب/>
<بب/>
</CCC>
<دي دي دي>
<بب/>
<بب/>
</DDD>
<EEE>
<CCC/>
<DDD/>
</EEE>
</AAA>
//*[العدد(*)=2]
حدد عنصرًا به طفلان
<آآ>
<CCC>
<بب/>
<بب/>
<بب/>
</CCC>
<دي دي دي>
<بب/>
<بب/>
</DDD>
<EEE>
<CCC/>
<DDD/>
</EEE>
</AAA>
//*[العدد(*)=3]
حدد عنصرًا يحتوي على 3 عناصر فرعية
<آآ>
<CCC>
<بب/>
<بب/>
<بب/>
</CCC>
<دي دي دي>
<بب/>
<بب/>
</DDD>
<EEE>
<CCC/>
<DDD/>
</EEE>
</AAA>
مثال 8
ترجع الدالة name() اسم العنصر، وترجع الدالة start-with() صحيحًا عندما تبدأ سلسلة المعلمة الأولى للدالة بحرف المعلمة الثانية، وترجع الدالة يحتوي على() صحيحًا عندما ترجع معلمة السلسلة الأولى الخاصة بها صحيح عند تضمين معلمة السلسلة الثانية
.
حدد كافة العناصر المسماة BBB (هنا يعادل //BBB)
<آآ>
<نسخة مخفية الوجهة>
<بب/>
<بب/>
<بب/>
</BCC>
< دي بي >
<بب/>
<بب/>
</ دي بي>
<بيك>
<CCC/>
<دبد/>
</بيك>
</AAA>
//*[يبدأ بـ(الاسم(),'B')]
تحديد كافة العناصر التي تبدأ أسماؤها بـ "B"
<آآ>
<نسخة مخفية الوجهة>
<بب/>
<بب/>
<بب/>
</BCC>
< دي بي >
<بب/>
<بب/>
</ دي بي>
<بيك>
<CCC/>
<دبد/>
</بيك>
</AAA>
//*[يحتوي على (الاسم ()،'C')]
حدد كافة العناصر التي تحتوي أسماؤها على "C"
<آآ>
<نسخة مخفية الوجهة>
<بب/>
<بب/>
<بب/>
</BCC>
< دي بي >
<بب/>
<بب/>
</ دي بي>
<بيك>
<CCC/>
<دبد/>
</بيك>
</AAA>
مثال 9
يمكن دمج مسارات متعددة معًا باستخدام المحدد |
//CCC |
حدد كافة عناصر CCC وBBB
<آآ>
<بب/>
<CCC/>
<دي دي دي>
<CCC/>
</DDD>
<EEE/>
</AAA>
/AAA/EEE |.//BBB
حدد كافة عناصر BBB وكل عناصر EEE التابعة لـ AAA
<آآ>
<بب/>
<CCC/>
<دي دي دي>
<CCC/>
</DDD>
<EEE/>
</AAA>
/AAA/EEE |.//DDD/CCC |
لا يوجد حد لعدد المسارات التي يمكن دمجها
<آآ>
<بب/>
<CCC/>
<دي دي دي>
<CCC/>
</DDD>
<EEE/>
</AAA>
مثال 10
يحتوي المحور الفرعي على العناصر الفرعية لعقدة السياق، ويمكن تجاهله كمحور
افتراضي
أي ما يعادل /الطفل::AAA
<آآ>
<بب/>
<CCC/>
</AAA>
/طفل::AAA
يعادل /AAA
<آآ>
<بب/>
<CCC/>
</AAA>
/AAA/بب
يعادل /child::AAA/child::BBB
<آآ>
<بب/>
<CCC/>
</AAA>
/طفل::AAA/طفل::BBB
أي ما يعادل /AAA/BBB
<آآ>
<بب/>
<CCC/>
</AAA>
/طفل::AAA/BBB
يمكن الجمع بين كلاهما
<آآ>
<بب/>
<CCC/>
</AAA>
مثال 11
إلى
عقدة فرعية أو عقدة تابعة للعقدة الفرعية، وما إلى ذلك، لذلك لا يحتوي المحور التنازلي على عقد السمات ومساحة الاسم.
يحدد جميع العناصر التابعة للعنصر الجذر للمستند، أي أنه يتم تحديد جميع العناصر
<آآ>
<بب>
<دي دي دي>
<CCC>
<دد/>
<EEE/>
</CCC>
</DDD>
</بب>
<CCC>
<دي دي دي>
<EEE>
<دي دي دي>
<ففف/>
</DDD>
</EEE>
</DDD>
</CCC>
</AAA>
/AAA/BBB/السليل::*
تحديد كافة العناصر التابعة لـ /AAA/BBB
<آآ>
<بب>
<دي دي دي>
<CCC>
<DDD/>
<EEE/>
</CCC>
</DDD>
</بب>
<CCC>
<دي دي دي>
<EEE>
<دي دي دي>
<ففف/>
</DDD>
</EEE>
</DDD>
</CCC>
</AAA>
//CCC/السليل::*
حدد كافة العناصر التي لديها CCC بين أسلافها
<آآ>
<بب>
<دي دي دي>
<CCC>
<DDD/>
<EEE/>
</CCC>
</DDD>
</بب>
</AAA>