Evo primjer brzo koristeći LINQ tumačenje nekih XML i dobiti na slatko, slatki atributi u njoj.
Evo XML želim analizirati:
<?xml version = "1,0" kodiranja = "utf-8" ?>
<DeafultConfigurationSets>
<PageLayouts><PageLayout name = "xyzzy">
<Kartice>
<Tab TabOrder="1" TabLabel="x" SharePointContentType="a" AdditionalConstraints="ac1"/>
<Tab TabOrder="2" TabLabel="y" SharePointContentType="b" AdditionalConstraints="ac2"/>
</Kartice>
</PageLayout><PageLayout name="xyzzy2">
<Kartice>
<Tab TabOrder="100" TabLabel="x" SharePointContentType="a" AdditionalConstraints="ac1"/>
<Tab TabOrder="101" TabLabel="y" SharePointContentType="b" AdditionalConstraints="ac2"/>
<Tab TabOrder="103" TabLabel="z" SharePointContentType="c" AdditionalConstraints="ac3"/>
</Kartice>
</PageLayout></PageLayouts>
</DeafultConfigurationSets>
Želim izgraditi neke kvačice na runtime strane raščlanjivanja gore. Moje Kartice ovisiti izgled stranice. Ako moj izgled stranice se zove "xyzzy2" onda želim da se jezičke 100, 101 i 103 (Kartice su u <PageLayout name = "xyzzy2">).
Evo kako to radi LINQ:
var = allTabs
iz p u
XElement.Parse(theXmlToParse).
Elementi("PageLayouts").
Elementi("PageLayout")
gdje (p.Attribute("name").Value.Equals("xyzzy2"))
od m p.Elements("Tabs").Elementi("Tab")
odaberite m;Results.Text = string.Empty;
foreach (var aTab u allTabs)
{
Results.Text =
"Tab Order: " + aTab.Attribute("TabOrder").Vrijednost + " |" +
"Tab Label: " + aTab.Attribute("TabLabel").Vrijednost + " | " +
"SharePointContentType: " + aTab.Attribute("SharePointContentType").Vrijednost + " | " +
"AdditionalConstraints: " + aTab.Attribute("AdditionalConstraints").Vrijednost + "\r";
}
U gore, varijabla "theXmlToParse" je string promjenjive, , ali možete koristiti opterećenje() Način na potoku, ako vam se sviđa.
"Rezultati" je naljepnica na web obrazac i kada se to kod izvršava, to izgleda ovako:
Nisam radio kako bi Prikazane rezultate još, pa ću ostaviti da se za buduće blogu.
</kraj>
Slijedite me na Twitter-u http://www.twitter.com/pagalvin