Կարգավիճակի արխիվներ: LINQ

Քերականական վերլուծություն թեմա է LINQ

Ահա մի օրինակ է արագ օգտագործել LINQ վերլուծել որոշ  XML Նամակ եւ ստանալ քաղցր է, քաղցր հատկանիշները այնտեղ.

Ահա XML Ես ուզում եմ վերլուծել:

<?XML տարբերակ = "1.0" կոդավորում = "utf-8" ?>
<DeafultConfigurationSets>
  <PageLayouts>

    <PageLayout անունը = "xyzzy">
      <Նոր որոնում>
        <Tab TabOrder="1" TabLabel="x" SharePointContentType="a" AdditionalConstraints="ac1"/>
        <Tab TabOrder="2" TabLabel="y" SharePointContentType="b" AdditionalConstraints="ac2"/>
      </Նոր որոնում>
    </PageLayout>

    <PageLayout name="xyzzy2">
      <Նոր որոնում>
        <Tab TabOrder="100" TabLabel="x" SharePointContentType="a" AdditionalConstraints="ac1"/>
        <Tab TabOrder="101" TabLabel="y" SharePointContentType="b" AdditionalConstraints="ac2"/>
        <Tab TabOrder="103" TabLabel="z" SharePointContentType="c" AdditionalConstraints="ac3"/>
      </Նոր որոնում>
    </PageLayout>

  </PageLayouts>
</DeafultConfigurationSets>

Ես ուզում եմ կառուցել մի քանի էջանիշերն է Runtime ըստ քերականական վերլուծություն վերը.  Իմ թարգմանությունը կախված մի էջ դիրքով.  Եթե ​​Իմ էջը դասավորությունը անունը է «xyzzy2", ապա ես ուզում եմ ստանալ էջանիշերն 100, 101 իսկ 103 (ի թարգմանությունը եւ <PageLayout name = "xyzzy2">).

Ահա LINQ դա այն:

եղել allTabs =
              սկսած p - ին
                  XElement.Parse(theXmlToParse).
                 
Elements("PageLayouts").
                  Elements("PageLayout")
              ուր (p.Attribute("name").Value.Equals("xyzzy2"))
              սկսած մ p.Elements("Tabs").Elements("Tab")
              ընտրեք մ;

          Results.Text = string.Empty;

          ԲՀԿ (էր ATAB մեջ allTabs)
          {
              Results.Text =
                  "Tab Order: " + aTab.Attribute("TabOrder").Արժեք + " |" +
                  "Tab Label: " + aTab.Attribute("TabLabel").Արժեք + " | " +
                  "SharePointContentType: " + aTab.Attribute("SharePointContentType").Արժեք + " | " +
                  "AdditionalConstraints: " + aTab.Attribute("AdditionalConstraints").Արժեք + "\r";
          }

Իսկ վերը նշված, ի փոփոխական «theXmlToParse» - ը a string փոփոխական, բայց դուք կարող եք օգտվել այդ բեռը() մեթոդը մի հոսքի, եթե Ձեզ դուր է գալիս.

«Արդյունքները" - ը պիտակի վրա վեբ ձեւով եւ երբ կոդը իրականացնում, կարծես, այս:

SNAGHTML11cd2e7c

Ես չեմ մշակել, թե ինչպես տեսակավորելու արդյունքները դեռ, այնպես որ ես թողնում, որ ապագա օրագրում Գրառման դիտարկում.

</վերջ>

Անդամագրվել իմ բլոգում.

Գտեք Twitter-ում http://www.twitter.com/pagalvin