قواعد XPath
- الصفحة السابقة نقاط XPath
- الصفحة التالية محاور XPath
XPath يستخدم تعبيرات المسار لاختيار العناصر أو مجموعة العناصر في مستند XML. يتم اختيار العناصر عبر التتبع على المسار (path) أو الخطوات (steps).
مثال مستند 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. يتم اختيار العناصر عبر التتبع على المسار أو الخطوات.
فيما يلي قائمة بأكثر مسارات التعبيرات استخدامًا:
التعبير | وصف |
---|---|
nodename | اختيار جميع الأبناء للنقطة الحالية. |
/ | اختيار العنصر من الجذر. |
// | اختيار العناصر في المستند التي تتوافق مع الاختيار الحالي، بغض النظر عن موقعها. |
. | اختيار النقطة الحالية. |
.. | اختيار العنصر الأم للنقطة الحالية. |
@ | اختيار الخاصية. |
مثال
في الجدول التالي، ندرج بعض مسارات التعبيرات ونواتج هذه التعبيرات:
عبارات المسار | النتيجة |
---|---|
bookstore | اختيار جميع الأبناء للعنصر bookstore. |
/bookstore |
اختيار العنصر الجذر bookstore. ملاحظة: إذا بدأت المسار ببداية السطر ( / )، فإن هذا المسار يمثل دائمًا المسار المطلق إلى العنصر. |
bookstore/book | اختيار جميع عناصر book التي هي أبناء العنصر bookstore. |
//book | اختيار جميع الأبناء book بغض النظر عن موقعهم داخل المستند. |
bookstore//book | اختيار جميع عناصر book التي هي أبناء العنصر bookstore، بغض النظر عن موقعها داخل العنصر bookstore. |
//@lang | اختيار جميع الخصائص التي تحمل الاسم lang. |
الجملة (Predicates)
تستخدم الجملة للبحث عن العنصر المحدد أو العنصر الذي يحتوي على قيمة معينة.
توضع الجملة داخل أقواس مزدوجة.
مثال
في الجدول التالي، ندرج بعض مسارات التعبيرات التي تحتوي على الجملة، وبالإضافة إلى نتائج هذه التعبيرات:
عبارات المسار | النتيجة |
---|---|
/bookstore/book[1] | اختيار العنصر book الذي هو أول العناصر التي هي أبناء العنصر bookstore. |
/bookstore/book[last()] | اختيار العنصر book الذي هو آخر العناصر التي هي أبناء العنصر bookstore. |
/bookstore/book[last()-1] | اختيار العنصر book الذي هو الثاني من آخر العناصر التي هي أبناء العنصر bookstore. |
/bookstore/book[position()<3] | اختيار أولاً ثنين من عناصر book التي هي أبناء العنصر bookstore. |
//title[@lang] | اختيار جميع العناصر title التي تحتوي على خاصية lang. |
//title[@lang='eng'] | اختيار جميع العناصر title التي تحتوي على خاصية lang بقيمة eng. |
/bookstore/book[price>35.00] | اختيار جميع عناصر book الموجودة داخل العنصر bookstore، بشرط أن تكون قيمة العنصر price أكبر من 35.00. |
/bookstore/book[price>35.00]/title | اختيار جميع عناصر الـ title لعنصر الـ book في عنصر الـ bookstore، حيث يجب أن تكون قيمة الـ price أكبر من 35.00. |
اختيار العقد غير المعروف
يمكن استخدام رموز XPath للتعرف على العناصر XML غير المعروفة.
الرمز المعاد | وصف |
---|---|
* | التوافق مع أي عقد عنصر |
@* | التوافق مع أي عقد خاصية |
node() | التوافق مع أي نوع من العقد |
مثال
في الجدول التالي، قمنا بسرد بعض عبارات المسار ومعرفة نتائجها:
عبارات المسار | النتيجة |
---|---|
/bookstore/* | اختيار جميع العناصر الفرعية لعنصر الـ bookstore. |
//* | اختيار جميع العناصر في المستند. |
//title[@*] | اختيار جميع عناصر الـ title التي تحتوي على خاصية. |
اختيار مسارات متعددة
من خلال استخدام عميل "|" في عبارات المسار، يمكنك اختيار عدة مسارات.
مثال
في الجدول التالي، قمنا بسرد بعض عبارات المسار ومعرفة نتائجها:
عبارات المسار | النتيجة |
---|---|
//book/title | //book/price | اختيار جميع عناصر الـ title و الـ price لعنصر الـ book. |
//title | //price | اختيار جميع عناصر الـ title و الـ price في المستند. |
/bookstore/book/title | //price | اختيار جميع عناصر الـ title التابعة لعنصر bookstore، بالإضافة إلى جميع عناصر الـ price في المستند. |
- الصفحة السابقة نقاط XPath
- الصفحة التالية محاور XPath