Etikedaj Arkivoj: LINQ

Analizanta XML kun LINQ

Ĉi tie-a rapida ekzemplo uzanta LINQ analizi kelkajn/kelkajn  XML kaj akiri ĉe la sukeraĵo, Dolĉaj ecoj therein.

Ĉi tie-a la XML mi deziras analizi:

<?Xml versio="1.0" Kodanta="utf-8" ?>
<DeafultConfigurationSets>
  <PageLayouts>

    <PageLayout nomo="xyzzy">
      <Klapetoj>
        <Klapeto TabOrder="1" TabLabel="x" SharePointContentType="" AdditionalConstraints="ac1"/>
        <Klapeto TabOrder="2" TabLabel="y" SharePointContentType="b" AdditionalConstraints="ac2"/>
      </Klapetoj>
    </PageLayout>

    <PageLayout nomo="xyzzy2">
      <Klapetoj>
        <Klapeto TabOrder="100" TabLabel="x" SharePointContentType="" AdditionalConstraints="ac1"/>
        <Klapeto TabOrder="101" TabLabel="y" SharePointContentType="b" AdditionalConstraints="ac2"/>
        <Klapeto TabOrder="103" TabLabel="z" SharePointContentType="c" AdditionalConstraints="ac3"/>
      </Klapetoj>
    </PageLayout>

  </PageLayouts>
</DeafultConfigurationSets>

Mi deziras konstrui supre kelkajn klapetojn ĉe runtime de analizanta la supran.  Miaj klapetoj dependas al paĝa plano.  Se la nomo de mia paĝo plano estas “xyzzy2” tiam mi deziras akiri klapetojn 100, 101 Kaj 103 (La klapetoj en <PageLayout nomo=”xyzzy2”>).

Ĉi tie-a la LINQ ke faras ĝin:

Var allTabs =
              De p je
                  XElement.Analizas(TheXmlToParse).
                 
Elementoj("PageLayouts").
                  Elementoj("PageLayout")
              Kie (P.Eco("Nomo").Valoro.Egaluloj("Xyzzy2"))
              De m en p.Elementoj("Klapetoj").Elementoj("Klapeto")
              Elektita m;

          Rezultoj.Teksta = ŝnuro.Senhoma;

          Foreach (Var aTab en allTabs)
          {
              Rezultoj.Teksto =
                  "Klapeta Ordo: " + ATab.Eco("TabOrder").Valoro + " |" +
                  "Klapeta Etikedo: " + ATab.Eco("TabLabel").Valoro + " | " +
                  "SharePointContentType: " + ATab.Eco("SharePointContentType").Valoro + " | " +
                  "AdditionalConstraints: " + ATab.Eco("AdditionalConstraints").Valoro + "R";
          }

En la supra, La varia “theXmlToParse” estas ŝnuro varia, Sed vi povas uzi la ŝarĝon() Metodo sur rivereto se vi ŝatas.

“Rezultoj” estas etikedo sur araneaĵa formo kaj kiam ĉi tiu kodo efektivigas, Ĝi similas tion ĉi:

SNAGHTML11cd2e7c

Mi ne eliris kiel ordigi la rezultojn ankoraŭ, Do mi lasos ke pro tio ke estonta bloga poŝto.

</Fino>

Aboni al mia blogo.

Sekvi min sur Pepi ĉe http://www.twitter.com/pagalvin