Jäsennettäessä XML LINQ kanssa

Tässä on nopea esimerkki käyttäen LINQ jäsentää joitakin  XML ja saada makea, Sweet ominaisuudet siinä.

Tässä on haluan jäsentää XML:

<?XML-versio = "1.0" koodaus = "utf-8" ?>
<DeafultConfigurationSets>
  <PageLayouts>

    <PageLayout nimi = "xyzzy">
      <Välilehdet>
        <Välilehti sarkainjärjestys = "1" TabLabel = "x" SharePointContentType = "" AdditionalConstraints = "ac1" />
        <Välilehti sarkainjärjestys = "2" TabLabel = "k" SharePointContentType = "b" AdditionalConstraints = "ac2" />
      </Välilehdet>
    </PageLayout>

    <PageLayout nimi = "xyzzy2">
      <Välilehdet>
        <Välilehti sarkainjärjestys = "100" TabLabel = "x" SharePointContentType = "" AdditionalConstraints = "ac1" />
        <Välilehti sarkainjärjestys = "101" TabLabel = "k" SharePointContentType = "b" AdditionalConstraints = "ac2" />
        <Välilehti sarkainjärjestys = "103" TabLabel = "z" SharePointContentType = "c" AdditionalConstraints = "ac3" />
      </Välilehdet>
    </PageLayout>

  </PageLayouts>
</DeafultConfigurationSets>

Haluan rakentaa joitakin välilehtiä suorituksen jäsentämällä edellä.  Välilehtiäni riippuvat sivun asettelu.  Jos sivun asettelun nimi on "xyzzy2" halua panna tabs 100, 101 ja 103 (välilehtien asetukset <PageLayout nimi = "xyzzy2">).

Tässä on LINQ, että se:

var allTabs =
              Alkaen p
                  XElement.Parse(theXmlToParse).
                 
Elementit("PageLayouts").
                  Elementit("PageLayout")
              Jos (p.Attribute("nimi").Value.Equals("xyzzy2"))
              m p.Elements("Välilehdet").Elementit("Välilehti")
              Valitse m;

          Results.Text = merkkijono.Tyhjä;

          foreach (var aTab allTabs)
          {
              Results.Text =
                  "Välilehti tilaa: " + aTab.Attribute("Sarkainjärjestys").Arvo + " |" +
                  "Välilehti-otsikko: " + aTab.Attribute("TabLabel").Arvo + " | " +
                  "SharePointContentType: " + aTab.Attribute("SharePointContentType").Arvo + " | " +
                  "AdditionalConstraints: " + aTab.Attribute("AdditionalConstraints").Arvo + "r";
          }

Edellä, muuttuja "theXmlToParse" on merkkijonomuuttuja, mutta voit käyttää kuorman() Jos haluat stream-menetelmä.

"Tulokset" on merkintä verkkolomakkeen ja kun tämä koodi suoritetaan, se näyttää tältä:

SNAGHTML11cd2e7c

En ole laatinut miten lajitella tulokset vielä, joten jätän että tulevaisuuden blogi.

</loppu>

Tilaa blogiin.

Noudata minut viserrys http://www.twitter.com/pagalvin

Jätä vastaus

Sähköpostiosoitettasi ei julkaista. pakolliset kentät on merkitty *