Heus aquí un exemple ràpid amb LINQ per analitzar alguns XML i aconseguir a la dolça, dolç atribueix en el mateix.
Aquí és l'XML I volen analitzar:
<?versió XML = "1.0" codificació = "utf-8" ?>
<DeafultConfigurationSets>
<PageLayouts><PageLayout nom = "xyzzy">
<Pestanyes>
<Pestanya TabOrder = "1" TabLabel = "x" SharePointContentType = "un" AdditionalConstraints = "ac1" />
<Pestanya TabOrder = 2" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = "ac2" />
</Pestanyes>
</PageLayout><PageLayout nom = "xyzzy2">
<Pestanyes>
<Pestanya TabOrder = "100" TabLabel = "x" SharePointContentType = "un" AdditionalConstraints = "ac1" />
<Pestanya TabOrder = "101" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = "ac2" />
<Pestanya TabOrder = "103" TabLabel = "z" SharePointContentType = "c" AdditionalConstraints = "ac3" />
</Pestanyes>
</PageLayout></PageLayouts>
</DeafultConfigurationSets>
No em volen construir cap amunt d'algunes pestanyes al temps d'execució per l'anàlisi de l'anterior. Meu tabuladors depenen d'una presentació de pàgina. Si nom el meu disseny de pàgina és "xyzzy2" a continuació, vull aconseguir pestanyes 100, 101 i 103 (les pestanyes en <PageLayout nom = "xyzzy2">).
Heus aquí la LINQ que ho fa:
var allTabs =
de p en
XElement.Parse(theXmlToParse).
Elements("PageLayouts").
Elements("PageLayout")
on (p.Attribute("nom").Value.Equals("xyzzy2"))
des de m en p.Elements("Tabuladors").Elements("Tabulador")
Seleccioneu m;Results.Text = cadena.Buit;
foreach (var aTab a allTabs)
{
Results.Text =
"Tabulador d'ordre: " + aTab.Attribute("TabOrder").Valor + " |" +
"Tabulador d'etiqueta: " + aTab.Attribute("TabLabel").Valor + " | " +
"SharePointContentType: " + aTab.Attribute("SharePointContentType").Valor + " | " +
"AdditionalConstraints: " + aTab.Attribute("AdditionalConstraints").Valor + "r";
}
En l'anterior, la variable "theXmlToParse" és una variable de corda, però es pot utilitzar la càrrega() mètode en un corrent si t'agrada.
"Resultats" és una etiqueta en un formulari web i quan s'executa aquest codi, s'assembla a això:
Jo no he treballat com a ordenar els resultats encara, Així que ho deixo per a un futur bloc.
</final>
Follow me on Twitter http://www.twitter.com/pagalvin