نحو 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 | اختيار جميع عناصر book والنصوص price. |
//title | //price | اختيار جميع عناصر title وprice في المستند. |
/bookstore/book/title | //price | اختيار جميع عناصر title التابعة لعنصر bookstore وكل عناصر price في المستند. |
- الصفحة السابقة عقد XPath
- الصفحة التالية محور XPath