محاور XPath (Axes)
- الصفحة السابقة قواعد XPath
- الصفحة التالية عناصر XPath
مثال مستند 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
يمكن تعريف محور بالنسبة لمجموعة العقد المتعلقة بالعقد الحالي.
اسم المحور | نتيجة |
---|---|
ancestor | اختيار جميع العقد الأباء (الأب، الجد، إلخ). |
ancestor-or-self | اختيار جميع العقد الأباء (الأب، الجد، إلخ) والعقد الحالي نفسه. |
attribute | اختيار جميع الخصائص |
child | اختيار جميع العناصر الابن |
descendant | اختيار جميع العقد الابناء (ابن، حفيد، إلخ). |
descendant-or-self | اختيار جميع العقد الابناء (ابن، حفيد، إلخ) والعقد الحالي نفسه. |
following | اختيار جميع العقد بعد العقد الحالي. |
namespace | اختيار جميع العقد المسمى بالاسم المطلق. |
parent | اختيار العقد الأب. |
preceding | اختيار جميع العقد قبل العقد الحالي. |
preceding-sibling | اختيار جميع العقد الم同级 مع العقد الحالي. |
self | اختيار العقد الحالي. |
عبرة مسار الموقع
مسار الموقع يمكن أن يكون مطلقًا أو مطلقًا.
المسار المطلق يبدأ ببداية المسار العمودي ( / )، بينما المسار المطلق لا يفعل ذلك. في كلا الحالتين، المسار الموقع يشمل خطوة واحدة أو أكثر، وكل خطوة يتم فصلها ببداية المسار العمودي:
المسار المطلق:
/step/step/...
المسار النسبي:
step/step/...
كل خطوة يتم حسابها بناءً على العقدات الموجودة في المجموعة الحالية للعقدات.
الخطوة (step) تشمل:
- المحور (axis)
- تعريف العلاقة الشجرة بين العقدة المحددة والعقدة الحالية
- اختبار العقدة (node-test)
- تعرف العقدات داخل المحور
- عدد لا محدود من الجمل (predicate)
- استخلاص المجموعة المحددة من العقدات المختارة
قواعد الجملة:
اسم المحور::اختبار العقدة [الجملة]
مثال
مثال | نتيجة |
---|---|
child::book | اختيار جميع العناصر الابن التي تنتمي إلى العقدة الحالية من نوع book |
attribute::lang | اختيار خاصية lang للعقدة الحالية |
child::* | اختيار جميع العناصر الابن |
attribute::* | اختيار جميع الخصائص |
child::text() | اختيار جميع العقدة النصية الابن |
child::node() | اختيار جميع العقدة الابن |
descendant::book | اختيار جميع الورث لـ book |
ancestor::book | اختيار جميع السلفين لـ book |
ancestor-or-self::book | اختيار جميع السلفين لـ book والعقدة الحالية (إذا كانت هذه العقدة هي book) |
child::*/child::price | اختيار جميع بنود price الابن لكل عقدة الحالية. |
- الصفحة السابقة قواعد XPath
- الصفحة التالية عناصر XPath