Aici este un exemplu rapida folosind LINQ pentru a analiza unele XML şi a obţine la dulce, dulce atribute în aceasta.
Iată XML vreau pentru a analiza:
<?XML version = "1.0" codificarea = "utf-8" ?>
<DeafultConfigurationSets>
<PageLayouts><PageLayout nume = "xyzzy">
<File>
<Fila TabOrder = "1" TabLabel = "x" SharePointContentType = "a" AdditionalConstraints = "ac1" />
<Fila TabOrder = "2" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = "ac2" />
</File>
</PageLayout><PageLayout nume = "xyzzy2">
<File>
<Fila TabOrder = "100" TabLabel = "x" SharePointContentType = "a" AdditionalConstraints = "ac1" />
<Fila TabOrder = "101" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = "ac2" />
<Fila TabOrder = "103" TabLabel = "z" SharePointContentType = "c" AdditionalConstraints = "ac3" />
</File>
</PageLayout></PageLayouts>
</DeafultConfigurationSets>
Vreau să construiască până unele file în timpul rulării de parsarea de mai sus. Meu file depind de o machetă de pagină. Dacă numele meu macheta de pagină este "xyzzy2", atunci vreau să obţineţi file 100, 101 şi 103 (filele din <PageLayout nume = "xyzzy2">).
Iată LINQ care nu este:
var allTabs =
din p în
XElement.Parse(theXmlToParse).
Elemente("PageLayouts").
Elemente("PageLayout")
în cazul în care (p.attribute("Nume").Value.Equals("xyzzy2"))
la m în p.Elements("File").Elemente("Fila")
Selectaţi m;Results.text = şir.Gol;
foreach (var aTab în allTabs)
{
Results.text =
"Ordinea tabulatorilor: " + aTab.Attribute("TabOrder").Valoarea + " |" +
"Fila eticheta: " + aTab.Attribute("TabLabel").Valoarea + " | " +
"SharePointContentType: " + aTab.Attribute("SharePointContentType").Valoarea + " | " +
"AdditionalConstraints: " + aTab.Attribute("AdditionalConstraints").Valoarea + "r";
}
În cele de mai sus, Variabila "theXmlToParse" este o variabilă şir, dar puteţi utiliza sarcina() metoda pe un flux dacă vă place.
"Rezultatele" este o etichetă pe un formular web și când acest cod execută, se pare ca asta:
Eu nu s-au elaborat cum să sorteze rezultatele încă, Deci, voi lăsa că pentru un post de viitor blog.
</scop>
Urmaţi-mă pe Twitter, la http://www.twitter.com/pagalvin