Voici un exemple rapide à l'aide de LINQ pour analyser certains XML et au bonbon, Sweet des attributs qui y sont.
Voici le code XML je veux analyser:
<?XML version = "1.0" Encoding = "utf-8" ?>
<DeafultConfigurationSets>
<PageLayouts><PageLayout nom = « xyzzy »>
<Onglets>
<Onglet TabOrder = "1" TabLabel = "x" SharePointContentType = "un" AdditionalConstraints = « ac1 » et>
<Onglet TabOrder = "2" TabLabel = y »" SharePointContentType = « b" AdditionalConstraints = « ac2 » />
</Onglets>
</PageLayout><PageLayout nom = « xyzzy2 »>
<Onglets>
<Onglet TabOrder = "100" TabLabel = "x" SharePointContentType = "un" AdditionalConstraints = « ac1 » et>
<Onglet TabOrder = 101 »" TabLabel = y »" SharePointContentType = « b" AdditionalConstraints = « ac2 » />
<Onglet TabOrder = 103 »" TabLabel = "z" SharePointContentType = c »" AdditionalConstraints = « ac3 » />
</Onglets>
</PageLayout></PageLayouts>
</DeafultConfigurationSets>
Je veux construire certains onglets lors de l'exécution par l'analyse de ce qui précède. Mes onglets dépendent d'une mise en page. Si nom du ma mise en page n'est « xyzzy2 » alors je veux avoir des onglets 100, 101 et 103 (les onglets de <PageLayout nom = « xyzzy2 »>).
Voici le LINQ qui fait:
var allTabs =
de p dans
XElement.Parse(theXmlToParse).
Éléments(« PageLayouts »).
Éléments(« PageLayout »)
où (p.Attribute(« nom »).Value.Equals(« xyzzy2 »))
de m à p.Elements(« Onglets »).Éléments(« Tab »)
Sélectionnez m;Results.Text = string.Vide;
foreach (aTab var en allTabs)
{
Results.Text =
"Ordre de tabulation: " + aTab.Attribute(« TabOrder »).Valeur + " |" +
"Étiquette de l'onglet: " + aTab.Attribute(« TabLabel »).Valeur + " | " +
« SharePointContentType: " + aTab.Attribute(« SharePointContentType »).Valeur + " | " +
« AdditionalConstraints: " + aTab.Attribute(« AdditionalConstraints »).Valeur + « r »;
}
Dans ce qui précède, la variable « theXmlToParse » est une variable de chaîne, mais vous pouvez utiliser la charge() méthode sur un cours d'eau si vous le souhaitez.
« Résultats » sont une étiquette sur un formulaire web et lorsque ce code s'exécute, Il ressemble à ceci:
Je n'ai pas travaillé sur comment trier les résultats encore, donc je vous laisse que pour un futur blog.
</fin>
Me suivre sur Twitter à http://www.twitter.com/pagalvin