فئة المحفوظات: LINQ

تحليل XML مع [لينق]

هنا مثال سريع باستخدام LINQ لتحليل بعض  XML واحصل على الحلو, سمات حلوة فيه.

هنا هو ترغب في تحليل XML:

<?إصدار xml = "1.0" ترميز = "utf-8" ?>
<ديفولتكونفيجوراتيونسيتس>
  <باجيلايوتس>

    <اسم باجيلايوت = "xyzzy">
      <علامات التبويب>
        <علامة التبويب TabOrder = "1" تابلابيل = "x" شاريبوينتكونتينتيبي = "" أديتيونالكونسترينتس = "ac1"/>
        <علامة التبويب TabOrder = "2" تابلابيل = "y"" شاريبوينتكونتينتيبي = "ب" أديتيونالكونسترينتس = "ac2"/>
      </علامات التبويب>
    </باجيلايوت>

    <اسم باجيلايوت = "xyzzy2">
      <علامات التبويب>
        <علامة التبويب TabOrder = "100" تابلابيل = "x" شاريبوينتكونتينتيبي = "" أديتيونالكونسترينتس = "ac1"/>
        <علامة التبويب TabOrder = "101" تابلابيل = "y"" شاريبوينتكونتينتيبي = "ب" أديتيونالكونسترينتس = "ac2"/>
        <علامة التبويب TabOrder = "103" تابلابيل = "z" شاريبوينتكونتينتيبي = "ج" أديتيونالكونسترينتس = "ac3"/>
      </علامات التبويب>
    </باجيلايوت>

  </باجيلايوتس>
</ديفولتكونفيجوراتيونسيتس>

أريد بناء على بعض علامات تبويب في وقت التشغيل من خلال تحليل ما ورد أعلاه.  ويتوقف بلدي علامات التبويب تخطيط صفحة.  إذا كان اسم تخطيط الصفحة بلدي هو "xyzzy2" ثم أريد أن احصل على علامات التبويب 100, 101 و 103 (علامات التبويب في <اسم باجيلايوت = "xyzzy2">).

هنا هو LINQ الذي يفعل ذلك:

var اللتابس =
              من ف في
                  XElement.Parse(ثيكسملتوبارسي).
                 
عناصر("باجيلايوتس").
                  عناصر("باجيلايوت")
              حيث (p.Attribute("الاسم").Value.Equals("xyzzy2"))
              من م في p.Elements("علامات التبويب").عناصر("Tab")
              حدد m;

          Results.Text = السلسلة.فارغة;

          foreach (عتاب فأر في اللتابس)
          {
              = Results.Text
                  "ترتيب الجدولة: " + aTab.Attribute("TabOrder").القيمة + " |" +
                  "علامة التبويب: " + aTab.Attribute("تابلابيل").القيمة + " | " +
                  "شاريبوينتكونتينتيبي: " + aTab.Attribute("شاريبوينتكونتينتيبي").القيمة + " | " +
                  "أديتيونالكونسترينتس: " + aTab.Attribute("أديتيونالكونسترينتس").القيمة + "r";
          }

في ما ورد أعلاه, المتغير "ثيكسملتوبارسي" متغير السلسلة, ولكن يمكنك استخدام التحميل() الأسلوب على دفق إذا كنت تحب.

"نتائج" تسمية "نموذج ويب" وعند تنفيذ هذه التعليمات البرمجية, يبدو مثل هذا:

SNAGHTML11cd2e7c

أنا لم تكن قد عملت على كيفية فرز النتائج حتى الآن, لذا سوف اترك التي لمستقبل بلوق وظيفة.

</نهاية>

الاشتراك في بلادي بلوق.

اتبعني على التغريد في http://www.twitter.com/pagalvin