Archifau Categori: LINQ

Dosrannu XML gyda LINQ

Dyma enghraifft cyflym gan ddefnyddio LINQ i dosrannu rhai  XML a chael yn y melys, priodoleddau melys ynddo.

Dyma y XML rwyf am dosrannu:

<?Fersiwn XML = "1.0" amgodio = "utf-8" ?>
<DeafultConfigurationSets>
  <PageLayouts>

    <Enw PageLayout = "xyzzy">
      <Tabs>
        <Tab TabOrder = "1" TabLabel = "x" SharePointContentType = "_FITTED" AdditionalConstraints = "ac1" />
        <Tab TabOrder = "2" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = "ac2" />
      </Tabs>
    </PageLayout>

    <Enw PageLayout = "xyzzy2">
      <Tabs>
        <Tab TabOrder = "100" TabLabel = "x" SharePointContentType = "_FITTED" AdditionalConstraints = "ac1" />
        <Tab TabOrder = "101" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = "ac2" />
        <Tab TabOrder = "103" TabLabel = "z" SharePointContentType = 'c" AdditionalConstraints = "ac3" />
      </Tabs>
    </PageLayout>

  </PageLayouts>
</DeafultConfigurationSets>

Rwyf am i adeiladu rhai tabiau ar Rhedeg trwy dosrannu yr uchod.  Mae fy tabs yn dibynnu ar gynllun dudalen.  Os yw enw fy gosodiad dudalen yw "xyzzy2" yna yr wyf yn awyddus i gael tabs 100, 101 a 103 (y tabiau yn <PageLayout name = "xyzzy2">).

Dyma y LINQ sy'n gwneud ei:

Roedd allTabs =
              gan p yn
                  XElement.Parse(theXmlToParse).
                 
Elfennau("PageLayouts").
                  Elfennau("PageLayout")
              lle (p.Attribute("enw").Value.Equals("xyzzy2"))
              o m yn p.Elements("Tabiau").Elfennau("Tab")
              dewiswch m;

          Results.Text = string.Empty;

          foreach (Roedd ATAB i allTabs)
          {
              Results.Text =
                  "Tab Gorchymyn: " + aTab.Attribute("TabOrder").Gwerth + " |" +
                  "Tab Label: " + aTab.Attribute("TabLabel").Gwerth + " | " +
                  "SharePointContentType: " + aTab.Attribute("SharePointContentType").Gwerth + " | " +
                  "AdditionalConstraints: " + aTab.Attribute("AdditionalConstraints").Gwerth + "r";
          }

Yn yr uchod, y newidyn "theXmlToParse" yn newidyn llinyn, ond gallwch ddefnyddio y llwyth() dull ar ffrwd os ydych yn hoffi.

"Canlyniadau" yn label ar ffurflen ar y we a phan fydd y cod hwn yn gweithredu, mae'n edrych fel hyn:

SNAGHTML11cd2e7c

Nid wyf wedi gweithio allan sut i drefnu canlyniadau eto, felly byddaf yn gadael y ar gyfer swydd blog yn y dyfodol.

</diwedd>

Tanysgrifio i fy mlog.

Dilynwch fi ar Twitter yn http://www.twitter.com/pagalvin