Her er en rask eksempel bruke LINQ til å analysere noen XML- og gå på søte, Sweet attributter deri.
Her er jeg vil analysere XML:
<?XML version = "1.0" Encoding = "utf-8" ?>
<DeafultConfigurationSets>
<PageLayouts><Navn på PageLayout = "xyzzy">
<Faner>
<Kategorien TabOrder = "1" TabLabel = "x" SharePointContentType = "a" AdditionalConstraints = "ac1" />
<Kategorien TabOrder = "2" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = "ac2" />
</Faner>
</PageLayout><Navn på PageLayout = "xyzzy2">
<Faner>
<Kategorien TabOrder = "100" TabLabel = "x" SharePointContentType = "a" AdditionalConstraints = "ac1" />
<Kategorien TabOrder = "101" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = "ac2" />
<Kategorien TabOrder = "103" TabLabel = "z" SharePointContentType = "c" AdditionalConstraints = "ac3" />
</Faner>
</PageLayout></PageLayouts>
</DeafultConfigurationSets>
Jeg ønsker å bygge opp noen kategorier under kjøring ved analysering ovenfor. Mine fliker, er avhengig av et sideoppsett. Hvis min sideoppsett-navnet er "xyzzy2" deretter vil jeg få tabulatorer 100, 101 og 103 (kategoriene i <Navn på PageLayout = "xyzzy2">).
Her er LINQ som gjør det:
var allTabs =
fra p i
XElement.Parse(theXmlToParse).
Elementer("PageLayouts").
Elementer("PageLayout")
der (p.Attribute("navn").Value.Equals("xyzzy2"))
fra m i p.Elements("Tabs").Elementer("Tab")
Velg m;Results.Text = streng.Tom;
foreach (var aTab i allTabs)
{
Results.Text = (likhetstegn)
"Tabulatorrekkefølgen: " + aTab.Attribute("TabOrder").Verdi + " |" +
"Kategorietikett: " + aTab.Attribute("TabLabel").Verdi + " | " +
"SharePointContentType: " + aTab.Attribute("SharePointContentType").Verdi + " | " +
"AdditionalConstraints: " + aTab.Attribute("AdditionalConstraints").Verdi + "r";
}
I de ovennevnte, variabelen "theXmlToParse" er en strengvariabel, men du kan bruke belastningen() metoden en dataflyt, hvis du liker.
"Resultater" er en etikett på et webskjema, og når denne koden utføres, Det ser ut som dette:
Jeg ikke har jobbet ut hvordan du kan sortere resultatene ennå, så jeg vil la det for en fremtidig blogginnlegg.
</slutten>
Følg meg på Twitter på http://www.twitter.com/pagalvin