Tag Archives: LINQ

Pag-parse ng XML sa LINQ

Narito ang isang mabilis na halimbawa ng paggamit LINQ i-parse ang ilang mga  XML at makakuha sa matamis, matamis na mga katangian sa ganyang bagay.

Narito ang XML na gusto kong i-parse:

<?xml version="1.0" encoding="utf-8" ?>
<DeafultConfigurationSets>
  <PageLayouts>

    <PageLayout name="xyzzy">
      <Mga Tab>
        <Tab TabOrder="1" TabLabel="x" SharePointContentType="a" AdditionalConstraints="ac1"/>
        <Tab TabOrder="2" TabLabel="y" SharePointContentType="b" AdditionalConstraints="ac2"/>
      </Mga Tab>
    </PageLayout>

    <PageLayout name="xyzzy2">
      <Mga Tab>
        <Tab TabOrder="100" TabLabel="x" SharePointContentType="a" AdditionalConstraints="ac1"/>
        <Tab TabOrder="101" TabLabel="y" SharePointContentType="b" AdditionalConstraints="ac2"/>
        <Tab TabOrder="103" TabLabel="z" SharePointContentType="c" AdditionalConstraints="ac3"/>
      </Mga Tab>
    </PageLayout>

  </PageLayouts>
</DeafultConfigurationSets>

Gusto kong bumuo ng ilang mga tab sa runtime sa pamamagitan ng pag-parse ng sa itaas.  Aking mga tab ay depende sa oras ng layout ng pahina.  Kung ang pangalan ng aking pahina layout ay "xyzzy2" pagkatapos Gusto kong makakuha ng mga tab 100, 101 at 103 (ang mga tab sa <PageLayout name = "xyzzy2">).

Narito ang LINQ na ginagawa nito:

ay allTabs =
              mula sa p
                  XElement.Parse(theXmlToParse).
                 
Mga Sangkap("PageLayouts").
                  Mga Sangkap("PageLayout")
              saan (p.Attribute("name").Value.Equals("xyzzy2"))
              m mula sa p.Elements("Tabs").Mga Sangkap("Tab")
              piliin m;

          Results.Text = string.Empty;

          foreach (ay ATAB sa allTabs)
          {
              Results.Text =
                  "Tab Order: " + aTab.Attribute("TabOrder").Halaga + " |" +
                  "Tab Label: " + aTab.Attribute("TabLabel").Halaga + " | " +
                  "SharePointContentType: " + aTab.Attribute("SharePointContentType").Halaga + " | " +
                  "AdditionalConstraints: " + aTab.Attribute("AdditionalConstraints").Halaga + "\r";
          }

Sa itaas, ang variable na "theXmlToParse" ay isang string variable, ngunit maaari mong gamitin ang pag-load() pamamaraan sa isang stream kung gusto mo.

"Mga Resulta" ay isang label sa isang web form at kapag ang code na ito executes, ito ganito ang hitsura:

SNAGHTML11cd2e7c

Hindi ko pa nagtrabaho out kung paano i-uri-uriin ang mga resulta pa, kaya makikita ko bang iwan na para sa isang hinaharap na post sa blog.

</dulo>

Mag-subscribe sa aking blog.

Sundin ako sa Twitter sa http://www.twitter.com/pagalvin