Tag Archives: LINQ

Anàlisi XML amb LINQ

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ò:

SNAGHTML11cd2e7c

Jo no he treballat com a ordenar els resultats encara, Així que ho deixo per a un futur bloc.

</final>

Subscriure's al meu blog.

Follow me on Twitter http://www.twitter.com/pagalvin