Tukaj je preprost primer, z uporabo LINQ razčleniti nekatere XML in zaslužiti na sladko, Sweet atributi v njej.
Tukaj je XML, želim razčleniti:
<?različica XML = "1,0" kodiranje = "utf-8" ?>
<DeafultConfigurationSets>
<PageLayouts><Ime PageLayout = "xyzzy">
<Tabs>
<Zanka TabOrder = "1" TabLabel = "x" SharePointContentType = "a" AdditionalConstraints = "ac1" />
<Zanka TabOrder = "2" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = "ac2" />
</Tabs>
</PageLayout><Ime PageLayout = "xyzzy2">
<Tabs>
<Zanka TabOrder = "100" TabLabel = "x" SharePointContentType = "a" AdditionalConstraints = "ac1" />
<Zanka TabOrder = "101" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = "ac2" />
<Zanka TabOrder = "103" TabLabel = "z" SharePointContentType = "c" AdditionalConstraints = "ac3" />
</Tabs>
</PageLayout></PageLayouts>
</DeafultConfigurationSets>
Želim zgraditi nekaj jezičkov na runtime z razčlenjevanjem zgoraj. Svoj tabs je odvisna od postavitve strani. Če postavitev moje strani ime "xyzzy2" potem hočem zaslužiti tabs 100, 101 in 103 (kartice v <Ime PageLayout = "xyzzy2">).
Tukaj je LINQ, da zato:
var allTabs =
iz p v
XElement.Parse(theXmlToParse).
Elementi("PageLayouts").
Elementi("PageLayout")
kjer (p.Attribute("ime").Value.Equals("xyzzy2"))
iz m v p.Elements("Tabs").Elementi("Tab")
Izberite m;Results.Text = niz.Prazna;
foreach (var aTab v allTabs)
{
Results.Text =
"Premikanja: " + aTab.Attribute("TabOrder").Vrednost + " |" +
"Zanka oznaka: " + aTab.Attribute("TabLabel").Vrednost + " | " +
"SharePointContentType: " + aTab.Attribute("SharePointContentType").Vrednost + " | " +
"AdditionalConstraints: " + aTab.Attribute("AdditionalConstraints").Vrednost + "r";
}
V zgoraj, Spremenljivka "theXmlToParse" je string spremenljivke, lahko pa uporabite obremenitev() metoda na tok, če vam je všeč.
"Rezultati" je nalepka na spletni obrazec in ko ta koda izvede, Izgleda, da to:
Nisem delal, kako razvrsti rezultate še, tako da bom dopust, da se za prihodnost blog post.
</namen>
Sledite mi na Cvrkutati na http://www.twitter.com/pagalvin