أحدث البرامج التعليمية وتطوير الشبكة
 

كسباث بناء الجملة


يستخدم تعبيرات كسباث مسار لتحديد العقد أو مجموعات عقدة في مستند XML. يتم تحديد العقدة باتباع مسار أو الخطوات.


وثيقة مثال XML

سوف نستخدم وثيقة XML التالية في الأمثلة أدناه.

<?xml version="1.0" encoding="UTF-8"?>

<bookstore>

<book>
  <title lang="en">Harry Potter</title>
  <price>29.99</price>
</book>

<book>
  <title lang="en">Learning XML</title>
  <price>39.95</price>
</book>

</bookstore>

اختيار العقد

يستخدم تعبيرات كسباث مسار لتحديد عقد في مستند XML. يتم تحديد العقدة باتباع مسار أو الخطوات. يتم سرد عبارات المسار الأكثر مفيدة أدناه:

التعبير وصف
nodename تحديد كافة العقد مع اسم " nodename "
/ يختار من عقدة الجذر
// يختار العقد في وثيقة من العقدة الحالية التي تتناسب مع اختيار بغض النظر عن مكان وجودهم
. يختار العقدة الحالية
.. يختار الوالد من العقدة الحالية
@ يختار الصفات

في الجدول أدناه لدينا قائمة بعض التعبيرات المسار ونتيجة لتعبيرات:

مسار التعبير نتيجة
مكتبة لبيع الكتب تحديد كافة العقد مع اسم "bookstore"
/مكتبة لبيع الكتب يختار مكتبة العنصر الجذر

Note: إذا يبدأ المسار بخط مائل ( / ) لأنها تمثل دائما مسار مطلق إلى عنصر!

مكتبة / كتاب تحديد كافة العناصر الكتاب الذي هم أولاد لبيع الكتب
//كتاب تحديد كافة العناصر كتاب بغض النظر عن مكان وجودهم في وثيقة
مكتبة // كتاب تحديد كافة العناصر الكتاب التي هي من سلالة عنصر مكتبة، بغض النظر عن مكان وجودهم تحت عنصر مكتبة
// @ لانج تحديد كافة السمات التي تتم تسمية انج

المسندات

وتستخدم المسندات للعثور على عقدة معينة أو العقدة التي تحتوي على قيمة محددة.

هي جزء لا يتجزأ المسندات دائما بين قوسين معقوفين.

في الجدول أدناه لدينا قائمة بعض التعبيرات المسار مع المسندات والنتيجة من التعبيرات:

مسار التعبير نتيجة
/ مكتبة / كتاب [1] يختار أول عنصر الكتاب الذي هو الطفل العنصر بيع الكتب.

Note: في IE 5،6،7،8،9 العقدة الأولى هي [0]، ولكن وفقا لW3C، هو [1]. لحل هذه المشكلة في IE، تعيين SelectionLanguage إلى كسباث:

In JavaScript: xml . setProperty("SelectionLanguage","XPath") ؛
/ مكتبة / كتاب [ last() ] يختار آخر عنصر الكتاب الذي هو الطفل للعنصر مكتبة
/ مكتبة / كتاب [ last() -1] يختار الماضي ولكن كتاب واحد العنصر الذي هو الطفل للعنصر مكتبة
/ مكتبة / كتاب [ position() <3] يختار الأولين العناصر الكتاب الذي هم أولاد عنصر مكتبة
// عنوان [lang] تحديد كافة العناصر التي لديها عنوان سمة مسماة لانج
// عنوان [@ لانج = "أون '] تحديد كافة العناصر التي لديها عنوان "لانج" السمة بقيمة "en"
/bookstore/book[price>35.00] تحديد كافة العناصر كتاب العنصر بيع الكتب التي تحتوي على عنصر السعر مع قيمة أكبر من 35.00
/bookstore/book[price>35.00]/title تحديد كافة العناصر لقب العناصر كتاب العنصر بيع الكتب التي تحتوي على عنصر السعر مع قيمة أكبر من 35.00

اختيار غير معروف العقد

البدل كسباث يمكن استخدامها لتحديد العقد XML غير معروفة.

البدل وصف
* يطابق أي عقدة عنصر
@* يطابق أي عقدة سمة
node() يطابق أي عقدة من أي نوع

في الجدول أدناه لدينا قائمة بعض التعبيرات المسار ونتيجة لتعبيرات:

مسار التعبير نتيجة
/مكتبة لبيع الكتب/* تحديد كافة العقد عنصر تابع للعنصر مكتبة
// * تحديد كافة العناصر في الوثيقة
//عنوان[@*] تحديد كافة العناصر اللقب الذي يكون سمة واحدة على الأقل من أي نوع

اختيار عدة مسارات

باستخدام | مشغل في تعبير XPath يمكنك اختيار عدة مسارات.

في الجدول أدناه لدينا قائمة بعض التعبيرات المسار ونتيجة لتعبيرات:

مسار التعبير نتيجة
// كتاب / العنوان | // كتاب / سعر تحديد كافة العناصر لقب AND أسعار جميع العناصر كتاب
// العنوان | //السعر تحديد كافة العناصر عنوان والسعر في الوثيقة
/ مكتبة / كتاب / العنوان | //السعر تحديد كافة العناصر عنوان العنصر كتاب العنصر مكتبة وجميع العناصر السعر في الوثيقة