Arhiva oznaka: LINQ

Parsiranje XML sa LINQ

Evo primjer brzo koristeći LINQ tumačenje nekih  XML i dobiti na slatko, slatki atributi u njoj.

Evo XML želim analizirati:

<?xml version = "1,0" kodiranja = "utf-8" ?>
<DeafultConfigurationSets>
  <PageLayouts>

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

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

  </PageLayouts>
</DeafultConfigurationSets>

Želim izgraditi neke kvačice na runtime strane raščlanjivanja gore.  Moje Kartice ovisiti izgled stranice.  Ako moj izgled stranice se zove "xyzzy2" onda želim da se jezičke 100, 101 i 103 (Kartice su u <PageLayout name = "xyzzy2">).

Evo kako to radi LINQ:

var = allTabs
              iz p u
                  XElement.Parse(theXmlToParse).
                 
Elementi("PageLayouts").
                  Elementi("PageLayout")
              gdje (p.Attribute("name").Value.Equals("xyzzy2"))
              od m p.Elements("Tabs").Elementi("Tab")
              odaberite m;

          Results.Text = string.Empty;

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

U gore, varijabla "theXmlToParse" je string promjenjive, , ali možete koristiti opterećenje() Način na potoku, ako vam se sviđa.

"Rezultati" je naljepnica na web obrazac i kada se to kod izvršava, to izgleda ovako:

SNAGHTML11cd2e7c

Nisam radio kako bi Prikazane rezultate još, pa ću ostaviti da se za buduće blogu.

</kraj>

Pretplatite se na moj blog.

Slijedite me na Twitter-u http://www.twitter.com/pagalvin