بایگانی برچسب: LINQ

تجزیه XML با LINQ

در اینجا یک مثال سریع با استفاده از LINQ به تجزیه برخی از  XML و شیرین, شیرین ویژگی های آن.

در اینجا XML من می خواهم به تجزیه:

<?نسخه XML = "1.0" رمزگذاری = "utf-8" ?>
<DeafultConfigurationSets>
  <PageLayouts>

    <PageLayout نام = "xyzzy">
      <زبانهها>
        <نوار TabOrder = "1" TabLabel = "X" SharePointContentType = "" AdditionalConstraints = "AC1" />
        <نوار TabOrder = "2" TabLabel = "Y" SharePointContentType = "B" AdditionalConstraints = "AC2" />
      </زبانهها>
    </PageLayout>

    <PageLayout نام = "xyzzy2">
      <زبانهها>
        <نوار TabOrder = "100" TabLabel = "X" SharePointContentType = "" AdditionalConstraints = "AC1" />
        <نوار TabOrder = "101" TabLabel = "Y" SharePointContentType = "B" AdditionalConstraints = "AC2" />
        <نوار TabOrder = "103" TabLabel = "Z" SharePointContentType = "C" AdditionalConstraints = "AC3" />
      </زبانهها>
    </PageLayout>

  </PageLayouts>
</DeafultConfigurationSets>

من می خواهم برای ساخت برخی از زبانه ها که در هنگام اجرا (Runtime) توسط تجزیه بالا.  زبانه های خود را بر طرح بندی صفحه بستگی دارد.  اگر نام طرح بندی صفحه من "xyzzy2" من می خواهم برای گرفتن زبانه 100, 101 و 103 (زبانه ها در <PageLayout نام = "xyzzy2">).

LINQ که آن را ندارد:

allTabs =
              از فسفر در
                  XElement.Parse(theXmlToParse).
                 
عناصر("PageLayouts).
                  عناصر("PageLayout")
              جایی که (p.Attribute("نام").Value.Equals("xyzzy2"))
              از متر در p.Elements("زبانهها").عناصر("تب")
              انتخاب متر;

          Results.Text = string.Empty;

          حلقه foreach (بود aTab در allTabs)
          {
              Results.Text =
                  "سفارش زبانه: " + aTab.Attribute("TabOrder").ارزش + " |" +
                  "برچسب نوار: " + aTab.Attribute("TabLabel").ارزش + " | " +
                  "SharePointContentType: " + aTab.Attribute("SharePointContentType").ارزش + " | " +
                  "AdditionalConstraints: " + aTab.Attribute("AdditionalConstraints).ارزش + " R";
          }

در بالا, متغیر "theXmlToParse" یک متغیر رشته ای است, اما شما می توانید بار استفاده() روش جریان اگر دوست دارید.

"نتایج" یک برچسب بر روی فرم وب است و هنگامی که این کد را اجرا می, مثل این به نظر می رسد:

SNAGHTML11cd2e7c

من کار نکرده است، چگونه به مرتب کردن بر اساس نتایج به دست آمده هنوز, بنابراین من که برای یک پست وبلاگ در آینده ترک.

</پایان>

مشترک شدن در وبلاگ من.

من در توییتر در http://www.twitter.com/pagalvin