Archívy kategórie: LINQ

Parsovanie XML s LINQ

Tu je rýchly príklad pomocou LINQ analyzovať niektoré  XML a získať na sladké, sladké atribúty v ňom.

Tu je chcem na syntaktickú analýzu XML:

<?XML verzia = "1,0" encoding = "utf-8" ?>
<DeafultConfigurationSets>
  <PageLayouts>

    <PageLayout meno = "xyzzy minového">
      <Karty>
        <Karta TabOrder = "1" TabLabel = "x" SharePointContentType = "_FITTED" AdditionalConstraints = "ac1" />
        <Karta TabOrder = "2" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = "ac2" />
      </Karty>
    </PageLayout>

    <Názov PageLayout = "xyzzy2">
      <Karty>
        <Karta TabOrder = "100" TabLabel = "x" SharePointContentType = "_FITTED" AdditionalConstraints = "ac1" />
        <Karta TabOrder = "101" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = "ac2" />
        <Karta TabOrder = "103" TabLabel = "z" SharePointContentType = "c" AdditionalConstraints = "ac3" />
      </Karty>
    </PageLayout>

  </PageLayouts>
</DeafultConfigurationSets>

Chcem vybudovať niektoré karty za behu analyzoval vyššie.  Moje karty závisia od rozloženia strany.  Ak je môj rozvrhnutie názov "xyzzy2" potom chcem zapnúť karty 100, 101 a 103 (karty v <Názov PageLayout = "xyzzy2">).

Tu je LINQ to:

var allTabs =
              z p v
                  XElement.Parse(theXmlToParse).
                 
Prvky("PageLayouts").
                  Prvky("PageLayout")
              kde (p.Attribute("názov").Value.Equals("xyzzy2"))
              m v p.Elements("Listy").Prvky("Tab")
              Vyberte m;

          Results.Text = reťazec.Prázdne;

          foreach (var aTab v allTabs)
          {
              Results.Text =
                  "Poradie: " + aTab.Attribute("TabOrder").Hodnota + " |" +
                  "Tab Label: " + aTab.Attribute("TabLabel").Hodnota + " | " +
                  "SharePointContentType: " + aTab.Attribute("SharePointContentType").Hodnota + " | " +
                  "AdditionalConstraints: " + aTab.Attribute("AdditionalConstraints").Hodnota + "r";
          }

Vo vyššie uvedenom, Premenná "theXmlToParse" je reťazec premenná, ale môžete použiť zaťaženie() metóda na prúd Ak sa vám páči.

"Výsledky" je štítok vo webovom formulári a keď tento kód spustí, Vyzerá to, že to:

SNAGHTML11cd2e7c

Ešte pracoval ako triediť výsledky zatiaľ, Takže nechám, že pre budúce blogu.

</koniec>

Vyberajte môj blog.

Nasledujte ma na stebėtų na http://www.twitter.com/pagalvin