استخراج قيم XML بمسار XPath

اختبر مسار XPath على ملفك قبل استخدامه في الكود أو في أداة كشط أو استيراد.

جارٍ تحميل الأداة…

المعالجة والخصوصية: تُحسب النتيجة داخل متصفحك ولا تُرسل بياناتك إلى أي خادم.

طريقة الاستخدام

  1. أدخل نص XML ومسار XPath.
  2. تظهر النتيجة فورًا وتتحدّث مع كل تعديل.
  3. انسخ النتيجة، أو انسخ رابطًا يحفظ القيم نفسها لمشاركتها.

طريقة الحساب

يدعم جزءا من XPath 1.0: / للأبناء المباشرين و// لكل الأحفاد، واسم العنصر أو *، والشروط [n] و[last()] و[@attr] و[@attr="v"] و[child="v"]، وفي آخر المسار @attr أو @* أو text(). قيمة العنصر هي نصه الكامل مع اختصار المسافات. الشرط [n] يُطبق على أبناء كل أب كما في XPath.

مثال

المدخلات: مسار XPath = /catalog/book/title. النتيجة: القيم المطابقة: مقدمة ابن خلدون Arabian Sands، عدد النتائج: 2.

<?xml version="1.0" encoding="UTF-8"?>
<catalog>
  <book id="1" lang="ar">
    <title>مقدمة ابن خلدون</title>
    <author>ابن خلدون</author>
    <price>45</price>
  </book>
  <book id="2" lang="en">
    <title>Arabian Sands</title>
    <author>Wilfred Thesiger</author>
    <price>60</price>
  </book>
</catalog>
مقدمة ابن خلدون
Arabian Sands

الحدود والملاحظات

  • لا يدعم الدوال مثل contains() وcount() ولا المحاور مثل parent:: ولا عوامل and وor.
  • البادئات مثل ns:tag تُطابق حرفيا دون تعريف للنطاقات.
  • text() يتجاهل العقد النصية المكونة من مسافات فقط.

أسئلة شائعة عن هذه الأداة

ما الفرق بين / و//؟

الشرطة الواحدة تنزل إلى الأبناء المباشرين فقط، والشرطتان تبحثان في كل المستويات تحت النقطة الحالية.

لماذا يعطي //*[2] أكثر من نتيجة؟

لأن [2] يعني العنصر الثاني بين أبناء كل أب على حدة، فتظهر نتيجة من كل أب له ابنان أو أكثر، وهذا سلوك XPath القياسي.

كيف أقرأ قيمة سمة؟

اختم المسار بالرمز @ واسم السمة، مثل //book/@id لكل قيم id، أو @* لكل السمات.