kategorie Argief: LinQ

Ontleding van XML met linQ

Hier is 'n vinnige voorbeeld gebruik van linQ 'n paar te ontleed  XML en kry by die lieflike, soet eienskappe daarin.

Hier is die XML wat ek wil ontleed:

<?die xml weergawe = "1,0" encoding = utf-8" ?>
<DeafultConfigurationSets>
  <PageLayouts>

    <PageLayout name = "Xyzzy">
      <Tabs>
        <Tab TabOrder = "1" TabLabel = "x" SharePointContentType = "'n" AdditionalConstraints = "AC1" />
        <Tab TabOrder = "2" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = "AC2" />
      </Tabs>
    </PageLayout>

    <PageLayout name = "xyzzy2">
      <Tabs>
        <Tab TabOrder = "100" TabLabel = "x" SharePointContentType = "'n" AdditionalConstraints = "AC1" />
        <Tab TabOrder = "101" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = "AC2" />
        <Tab TabOrder = "103" TabLabel = "z" SharePointContentType = "C" AdditionalConstraints = "AC3" />
      </Tabs>
    </PageLayout>

  </PageLayouts>
</DeafultConfigurationSets>

Ek wil n paar tabs tydens looptyd deur die ontleding van die bogenoemde op te bou.  My oortjies hang af op 'n bladuitleg.  As my bladuitleg se naam is "xyzzy2" dan wil ek weet oortjies te kry 100, 101 en 103 (die tabs in <PageLayout name = "xyzzy2">).

Hier is die linQ wat doen dit:

allTabs =
              vanaf P
                  XElement.Parse(theXmlToParse).
                 
Elemente("PageLayouts").
                  Elemente("PageLayout")
              waar (p.Attribute("Naam").Value.Equals("Xyzzy2"))
              van m in p.Elements("Tabs").Elemente("Tab")
              kies m;

          Results.Text = string.Empty;

          foreach (ATAB is allTabs)
          {
              Results.Text =
                  "Tab Bestel: " + aTab.Attribute("TabOrder").Waarde + " |" +
                  "Etiket: " + aTab.Attribute("TabLabel").Waarde + " | " +
                  "SharePointContentType: " + aTab.Attribute("SharePointContentType").Waarde + " | " +
                  "AdditionalConstraints: " + aTab.Attribute("AdditionalConstraints").Waarde + " R";
          }

In die bogenoemde, die wisselende "theXmlToParse" is 'n string veranderlike, maar jy kan gebruik om die las() metode op 'n stroom as jy wil.

"Resultate" is 'n etiket op 'n web vorm en wanneer hierdie kode uitvoer, Dit lyk soos volg:

SNAGHTML11cd2e7c

Ek het nog nie uitgewerk hoe om die resultate nog te sorteer, so ek sal laat dit vir 'n toekomstige blog post.

</einde>

Skryf in op my blog.

Volg my op Twitter http://www.twitter.com/pagalvin