كيفية اختبار تعبير XPath
- الصق XML، أو افتح ملفًا، أو استخدم مثال كتالوج المنتجات.
- اكتب تعبير XPath أو انقر على أحد الأمثلة. تتحدّث النتيجة أثناء الكتابة، ويُقيّم مفتاح Enter التعبير فورًا.
- اطّلع على النتيجة: عدد العقد المطابقة مع نوعها ومحتواها، أو الرقم أو السلسلة النصية أو القيمة المنطقية التي يُرجعها التعبير.
دليل XPath السريع
| التعبير | ما يحدده |
|---|---|
/catalog | العنصر الجذر catalog |
//product | كل عناصر product، في أي عمق |
/catalog/product/name | عنصر name لكل منتج، خطوة بخطوة من الجذر |
//product/@id | السمة id لكل منتج |
//product[@category='books'] | المنتجات التي قيمة سمتها category هي books |
//product[price > 20] | المنتجات التي يزيد سعرها على 20، بمقارنة رقمية |
//product[contains(name, 'USB')] | المنتجات التي يحتوي اسمها على «USB» (مع مراعاة حالة الأحرف) |
//product[not(tags)] | المنتجات التي لا تحتوي على عنصر فرعي tags |
(//product)[1] | أول منتج في المستند |
//product[1] | أول منتج داخل كل عنصر أب |
//product[last()] | آخر منتج داخل كل عنصر أب |
//name/text() | العقد النصية داخل name |
//price/.. | العنصر الأب لكل price |
//*[local-name()='product'] | عناصر product في أي مساحة أسماء |
count(//product) | عدد المنتجات |
sum(//price) | مجموع كل الأسعار |
string(//product[1]/name) | اسم أول منتج كسلسلة نصية |
مساحات الأسماء في XPath
لا توجد في XPath 1.0 مساحة أسماء افتراضية. ففي مستند يحتوي على xmlns="…"، مثل خريطة الموقع أو فاتورة NF-e، لا يعثر //url على أي شيء، لأن العناصر تنتمي إلى مساحة الأسماء تلك. لذلك تربط الأداة مساحة الأسماء الافتراضية بالبادئة x: (أو d: إذا كانت x مستخدمة بالفعل)، فيعمل //x:url/x:loc. ويمكن استخدام البادئات المعرّفة في المستند، مثل cfdi: في فاتورة CFDI، كما هي مكتوبة. وفي الأدوات التي لا تتيح إعداد مساحات الأسماء، يعمل //*[local-name()='url'] في كل مكان.
الأسئلة الشائعة
ما إصدار XPath الذي تدعمه الأداة؟
تدعم الأداة XPath 1.0، وهو الإصدار المدمج في كل المتصفحات ومعظم مكتبات XML. أما دوال XPath 2.0 والإصدارات اللاحقة، مثل matches() أو lower-case() أو string-join()، فغير متاحة.
لماذا لا يُرجع تعبير XPath أي نتيجة؟
الأسباب الأكثر شيوعًا هي: مساحة أسماء افتراضية (استخدم البادئة x: الموضحة أسفل الأمثلة)، أو اختلاف حالة الأحرف – فـ XPath حساس لحالة الأحرف – أو المواضع التي تبدأ من 1 وليس من 0.
كم عدد النتائج المعروضة؟
تُحتسب جميع النتائج المطابقة، وتُعرض أول 500 نتيجة مع نوع العقدة ومحتواها.
هل يُرفع XML الخاص بي؟
لا. يُحلَّل XML ويُستعلم عنه داخل متصفحك. ولا يُجلب عبر خادمنا إلا الرابط الذي تحمّله.