Analizë gramatikore XML me LINQ

Këtu është një shembull të shpejtë duke përdorur LINQ të kuptoj disa  XML dhe të marrë të ëmbël, atributet e ëmbël aty.

Ja XML unë dua të bëj analizë gramatikore:

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

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

    <PageLayout name="xyzzy2">
      <Tabs>
        <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"/>
      </Tabs>
    </PageLayout>

  </PageLayouts>
</DeafultConfigurationSets>

Unë dua të ndërtuar disa tabs në kohën e duhur nga analizimi sipër.  Tabs mia varet nga një layout faqe.  Në qoftë se emri Layout faqen time është "xyzzy2", atëherë unë dua të merrni tabs 100, 101 dhe 103 (skedat në <PageLayout name = "xyzzy2">).

Ja LINQ që e bën atë:

var = allTabs
              nga p në
                  XElement.Parse(theXmlToParse).
                 
Elemente("PageLayouts").
                  Elemente("PageLayout")
              Ku (p.Attribute("name").Value.Equals("xyzzy2"))
              prej meje në p.Elements("Tabs").Elemente("Tab")
              Zgjidh m;

          Results.Text = string.Empty;

          foreach (var aTab në allTabs)
          {
              Results.Text =
                  "Tab Order: " + aTab.Attribute("TabOrder").Vlerë + " |" +
                  "Tab Label: " + aTab.Attribute("TabLabel").Vlerë + " | " +
                  "SharePointContentType: " + aTab.Attribute("SharePointContentType").Vlerë + " | " +
                  "AdditionalConstraints: " + aTab.Attribute("AdditionalConstraints").Vlerë + "\r";
          }

Në sipër, variabël "theXmlToParse" është variabël string, Por ju mund të përdorni LOAD() Metoda në lumë, nëse ju pëlqen.

"Rezultate" është etiketë në formën e internetit dhe ekzekuton Kur kjo pin, kjo duket si ky:

SNAGHTML11cd2e7c

Unë nuk kam punuar se si të lloj rezultatet ende, kërcejnë unë do të iki që për një blog post të ardhmen.

</fund>

Abonohen në blogun tim.

Atëherë ejani pas meje në Twitter në http://www.twitter.com/pagalvin

Lini një Përgjigju

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar *