Razčlenjevanje XML z LINQ

Tukaj je preprost primer, z uporabo LINQ razčleniti nekatere  XML in zaslužiti na sladko, Sweet atributi v njej.

Tukaj je XML, želim razčleniti:

<?različica XML = "1,0" kodiranje = "utf-8" ?>
<DeafultConfigurationSets>
  <PageLayouts>

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

    <Ime PageLayout = "xyzzy2">
      <Tabs>
        <Zanka TabOrder = "100" TabLabel = "x" SharePointContentType = "a" AdditionalConstraints = "ac1" />
        <Zanka TabOrder = "101" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = "ac2" />
        <Zanka TabOrder = "103" TabLabel = "z" SharePointContentType = "c" AdditionalConstraints = "ac3" />
      </Tabs>
    </PageLayout>

  </PageLayouts>
</DeafultConfigurationSets>

Želim zgraditi nekaj jezičkov na runtime z razčlenjevanjem zgoraj.  Svoj tabs je odvisna od postavitve strani.  Če postavitev moje strani ime "xyzzy2" potem hočem zaslužiti tabs 100, 101 in 103 (kartice v <Ime PageLayout = "xyzzy2">).

Tukaj je LINQ, da zato:

var allTabs =
              iz p v
                  XElement.Parse(theXmlToParse).
                 
Elementi("PageLayouts").
                  Elementi("PageLayout")
              kjer (p.Attribute("ime").Value.Equals("xyzzy2"))
              iz m v p.Elements("Tabs").Elementi("Tab")
              Izberite m;

          Results.Text = niz.Prazna;

          foreach (var aTab v allTabs)
          {
              Results.Text =
                  "Premikanja: " + aTab.Attribute("TabOrder").Vrednost + " |" +
                  "Zanka oznaka: " + aTab.Attribute("TabLabel").Vrednost + " | " +
                  "SharePointContentType: " + aTab.Attribute("SharePointContentType").Vrednost + " | " +
                  "AdditionalConstraints: " + aTab.Attribute("AdditionalConstraints").Vrednost + "r";
          }

V zgoraj, Spremenljivka "theXmlToParse" je string spremenljivke, lahko pa uporabite obremenitev() metoda na tok, če vam je všeč.

"Rezultati" je nalepka na spletni obrazec in ko ta koda izvede, Izgleda, da to:

SNAGHTML11cd2e7c

Nisem delal, kako razvrsti rezultate še, tako da bom dopust, da se za prihodnost blog post.

</namen>

Naročite se na moj blog.

Sledite mi na Cvrkutati na http://www.twitter.com/pagalvin

pusti odgovor

Vaš e-naslov ne bo objavljen. Obvezna polja so označena *