سؤال

أحصل على ملف XML من خدمة ويب.الآن أريد إخراج أحد هذه العناصر من الملف.

أعتقد أنني يجب أن أستخدم XPath - هل هناك أي مرجع جيد للبدء؟

هل كانت مفيدة؟

المحلول

ليس خاصًا بـ VB، لكن جرب هذا: http://www.w3schools.com/xsl/xpath_intro.asp

نصائح أخرى

لقد قمت للتو باستعادة مهارات XPath الخاصة بي - هذا ورقة مرجعية سريعة لـ Xslt وXPath يعد مرجعًا مفيدًا للغاية - فهو لا يتعمق ولكنه يسرد ما هو متاح وما قد ترغب في البحث عنه لمزيد من المعلومات.

إن البرنامج التعليمي w3schools الذي تم ربطه سابقًا ليس رائعًا - فهو يستغرق وقتًا طويلاً حتى لا يغطي الكثير من الأمور - ولكنه لا يزال يستحق القراءة.

تتمثل إحدى الطرق في استخراج المعلومات المطلوبة فقط باستخدام ملف xslt إلى ملف xml جديد واستخدام ملف xml الجديد هذا كأساس للبيانات لمزيد من المعالجة

إذا كنت بحاجة إلى القيام ببعض XPath، فأنا أقوم فقط بتعديل أحد هذه الأمثلة.

  • الطفل::عقدة() يحدد كافة العناصر الفرعية لعقدة السياق، مهما كان نوع العقدة الخاصة بهم
  • اسم السمة يحدد سمة الاسم لعقدة السياق
  • يصف::* يختار كافة سمات عقدة السياق
  • السليل::الفقرة يحدد أحفاد العنصر الفقرة من عقدة السياق
  • سلف :: شعبة يختار الكل شعبة أسلاف عقدة السياق
  • السلف أو الذات::div يختار شعبة أسلاف عقدة السياق، وإذا كانت عقدة السياق عبارة عن عنصر div، فستكون عقدة السياق أيضًا
  • سليل أو ذاتي::فقرة يختار الفقرة العنصر المتحدر من عقدة السياق، وإذا كانت عقدة السياق هي الفقرة العنصر، وعقدة السياق كذلك
  • الذات::فقرة يحدد عقدة السياق إذا كانت الفقرة العنصر، وبخلاف ذلك لا يختار أي شيء
  • الطفل::الفصل/السليل::الفقرة يختار الفقرة العنصر المتحدر من أبناء عنصر الفصل من عقدة السياق
  • الطفل::*/الطفل::الفقرة يختار الكل الفقرة أحفاد عقدة السياق
  • / تحديد جذر المستند (الذي يكون دائمًا أصل عنصر المستند)
  • / سليل :: الفقرة يختار كل الفقرة العناصر الموجودة في نفس المستند مثل عقدة السياق
  • / سليل::olist/child::item يحدد كافة عناصر العنصر التي لها olist الأصل والموجودين في نفس المستند مثل عقدة السياق
  • الطفل::الفقرة[الموضع()=1] يختار الأول الفقرة طفل عقدة السياق
  • الطفل::الفقرة[position()=last()] يختار الأخير الفقرة طفل عقدة السياق
  • الطفل::para[position()=last()-1] يختار الأخير ولكن واحد الفقرة طفل عقدة السياق
  • الطفل::الفقرة[الموضع()>1] يختار كل الفقرة أبناء عقدة السياق بخلاف الطفل الفقرة الأول لعقدة السياق
  • الأخوة التاليين::chapter[position()=1] يختار التالي الفصل شقيق عقدة السياق
  • الأخوة السابقون::chapter[position()=1] يختار السابق الفصل شقيق عقدة السياق
  • / سليل :: الشكل [الموضع () = 42] تحديد عنصر الشكل الثاني والأربعين في المستند
  • /child::doc/child::chapter[position()=5]/child::section[position()=2] يختار القسم الثاني من الخامس الفصل التابع وثيقة عنصر الوثيقة
  • الطفل::فقرة[سمة::نوع = "تحذير"] يختار الكل الفقرة أطفال عقدة السياق التي لها سمة نوع ذات قيمة تحذير
  • الطفل::para[attribute::type='warning'][position()=5] يختار الخامس الفقرة فرع عقدة السياق التي تحتوي على سمة النوع مع تحذير القيمة
  • الطفل::para[position()=5][attribute::type="warning"] يختار الخامس الفقرة طفل عقدة السياق إذا كان هذا الطفل لديه سمة نوع ذات قيمة تحذير
  • الطفل::chapter[child::title='مقدمة'] يحدد أطفال الفصل من عقدة السياق التي تحتوي على طفل عنوان واحد أو أكثر بقيمة سلسلة تساوي المقدمة
  • الطفل::الفصل[الطفل::العنوان] يختار الفصل أطفال عقدة السياق التي لها عنوان فرعي واحد أو أكثر
  • الطفل::*[الذات::الفصل أو الذات::الملحق] يختار الفصل و زائدة أطفال عقدة السياق
  • الطفل::*[self::chapter أو self::appendix][position()=last()] يختار الأخير الفصل أو زائدة طفل عقدة السياق

يمكن العثور على وثائق متعمقة هنا.كما يتم أخذ هذه الأمثلة من هناك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top