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:
Jsem jak řadit výsledky zatím nevychází, Tak já to nechám pro budoucí blogu.
</Konec>
Za mnou na Twitter na http://www.twitter.com/pagalvin