Archivy kategorií: LINQ

Při analýze XML s LINQ

Zde je příklad rychlé pomocí LINQ analyzovat některé  XML a vystoupit na sladkost, sladký atributy v něm.

Tady je chci zpracovat XML:

<?XML verze = "1.0" kódování = "utf-8" ?>
<DeafultConfigurationSets>
  <PageLayouts>

    <PageLayout jméno = "xyzzy">
      <Tabulátory>
        <Karta TabOrder = "1" Jmenovku záložky = "x" SharePointContentType = "a" AdditionalConstraints = "ac1" />
        <Karta TabOrder = "2" Jmenovku záložky "y =" SharePointContentType = "b" AdditionalConstraints = "ac2" />
      </Tabulátory>
    </PageLayout>

    <PageLayout jméno = "xyzzy2">
      <Tabulátory>
        <Karta TabOrder = "100" Jmenovku záložky = "x" SharePointContentType = "a" AdditionalConstraints = "ac1" />
        <Karta TabOrder = "101" Jmenovku záložky "y =" SharePointContentType = "b" AdditionalConstraints = "ac2" />
        <Karta TabOrder = "103" Jmenovku záložky = "z" SharePointContentType = "c" AdditionalConstraints = "ac3" />
      </Tabulátory>
    </PageLayout>

  </PageLayouts>
</DeafultConfigurationSets>

Chci vybudovat si některé karty za běhu pomocí analýzy výše.  Moje karty závisí na rozložení stránky.  Pokud rozložení stránky mé jméno je "xyzzy2" pak chci karty 100, 101 a 103 (karty v <PageLayout jméno = "xyzzy2">).

Tady je LINQ, dělá to:

var allTabs =
              od p v
                  XElement.Parse(theXmlToParse).
                 
Prvky("PageLayouts").
                  Prvky("PageLayout")
              kde (p.Attribute("název").Value.Equals("xyzzy2"))
              od m v p.Elements("Karty").Prvky("Kartu")
              Vybrat m;

          Results.text = string.Prázdný;

          foreach (var aTab v allTabs)
          {
              Results.text =
                  "Pořadí prvků: " + aTab.Attribute("TabOrder").Hodnota + " |" +
                  "Popisek záložky: " + aTab.Attribute("Jmenovku záložky").Hodnota + " | " +
                  "SharePointContentType: " + aTab.Attribute("SharePointContentType").Hodnota + " | " +
                  "AdditionalConstraints: " + aTab.Attribute("AdditionalConstraints").Hodnota + "r";
          }

V výše uvedeného, Proměnná "theXmlToParse" je proměnné řetězce, Můžete však použít zatížení() metoda v proudu, pokud se vám líbí.

"Výsledky" je štítek na webovém formuláři a když tento kód, Vypadá to jako to:

SNAGHTML11cd2e7c

Jsem jak řadit výsledky zatím nevychází, Tak já to nechám pro budoucí blogu.

</Konec>

Přihlásit se na mém blogu.

Za mnou na Twitter na http://www.twitter.com/pagalvin