سؤال

ولدي بعض XML أواجه معالجة مشكلة مع كسباث. أنا لا يمكن أن يبدو للحصول على القيم وأنا أبحث عنه. ويتمحور XML مثل هذا:

<Group>
   <Menu>
      <Name>Top Menu</Name>
      <Document>
         <DocName>Readme.txt</DocName>
      </Document>
      <Menu>
         <Name>Sub Menu</Name>
         <Document>
            <DocName>Manual.pdf</DocName>
         </Document>
         <Document>
            <DocName>UserGuide.pdf</DocName>
         </Document>
      </Menu>
   </Menu>
</Group>

ونظرا لاسم القائمة، وأريد أن نعود قائمة DocumentNodes في القائمة. على سبيل المثال، نظرا "القائمة الفرعية"، أود أن نعود العقد وثيقة اثنين لManual.pdf وUserGuide.pdf.

وحاليا، أنا سحب هذه المعلومات باستخدام التعليمات البرمجية التي حلقات عبر الأطفال، ولكن أنا أفضل أن مجرد سحب ما يصل مباشرة باستخدام كسباث، ولكن مهاراتي معها ضعيفة.

(وقبل أن تسأل، لا أستطيع أن إعادة هيكلة XML. لقد وفرت لي بهذه الطريقة).

وأي أفكار؟

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

المحلول

وهنا هو كسباث من شأنها أن تفعل ما تريد:

<اقتباس فقرة>   

و//Menu[Name='Sub Menu']/Document

نصائح أخرى

و/<Menu>[\w\n]*<Name>Sub Menu</Name>[\w\n]*<Document>[\w\n]*(<DocName>([a-ZA-Z0-9\.]+)</DocName>[\w\n]*)*</Menu>/

وان اكثر من العمل المحتمل (مع قليل من التغيير والتبديل، وهذا هو خشنة بعض الشيء!)، ولكن لا أعتقد أن التعبيرات المنتظمة هو الطريق للذهاب. فما استقاموا لكم فاستقيموا استخدام شخصيا كسباث أو DOM

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