L'analyse de XML avec LINQ

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:

SNAGHTML11cd2e7c

Je n'ai pas travaillé sur comment trier les résultats encore, donc je vous laisse que pour un futur blog.

</fin>

S'abonner à mon blog.

Me suivre sur Twitter à http://www.twitter.com/pagalvin

Laisser une réponse

Votre adresse email ne sera pas publiée. les champs requis sont indiqués *