వర్గం ఆర్కైవ్స్: LINQ

LINQ తో XML పదనిరూపణ

ఇక్కడ LINQ కొన్ని అన్వయించడం ఉపయోగించి ఒక వేగవంతమైన ఉదాహరణకు  XML మరియు తీపి వద్ద పొందండి, తీపి లక్షణాలు విషయంలో.

ఇక్కడ నేను విశ్లేషించడం మీరు XML వార్తలు:

<?xml version="1.0" encoding="utf-8" ?>
<DeafultConfigurationSets>
  <PageLayouts>

    <PageLayout name="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>

నేను పైన అన్వయించడం ద్వారా పని కొన్ని టాబ్లు అప్ నిర్మించడానికి కావలసిన.  నా టాబ్లు ఒక పేజీ లేఅవుట్ ఆధారపడి.  నా పేజీ లేఅవుట్ యొక్క పేరు "xyzzy2" ఉంటే అప్పుడు నేను టాబ్లను పొందాలనుకోవడం 100, 101 మరియు 103 (లో టాబ్ <PageLayout పేరు = "xyzzy2">).

ఇక్కడ అది ఆ LINQ వార్తలు:

allTabs = ఉంది
              లో p నుండి
                  XElement.Parse(theXmlToParse).
                 
ఎలిమెంట్స్("PageLayouts").
                  ఎలిమెంట్స్("PageLayout")
              పేరు (p.Attribute("name").Value.Equals("xyzzy2"))
              p.Elements లో m నుండి("Tabs").ఎలిమెంట్స్("Tab")
              m ఎంచుకోండి;

          Results.Text = string.Empty;

          foreach (ATAB allTabs లోకి)
          {
              Results.Text =
                  "Tab Order: " + aTab.Attribute("TabOrder").విలువ + " |" +
                  "Tab Label: " + aTab.Attribute("TabLabel").విలువ + " | " +
                  "SharePointContentType: " + aTab.Attribute("SharePointContentType").విలువ + " | " +
                  "AdditionalConstraints: " + aTab.Attribute("AdditionalConstraints").విలువ + "\r";
          }

పైన లో, వేరియబుల్ "theXmlToParse" ఒక స్ట్రింగ్ వేరియబుల్ ఉంది, కానీ మీరు లోడ్ ఉపయోగించవచ్చు() ప్రవాహం మీద పద్ధతి మీరు కోరుకుంటే.

ఈ కోడ్ అమలు చేసినప్పుడు "ఫలితాలు" ఒక వెబ్ పత్రంలో ఒక లేబుల్ మరియు, ఈ అనిపిస్తోంది:

SNAGHTML11cd2e7c

నేను ఇంకా ఫలితాలు క్రమం ఎలా పని లేదు, కాబట్టి నేను ఒక భవిష్యత్ బ్లాగ్ పోస్ట్ కోసం ఆ చెప్పను.

</చివర>

నా బ్లాగ్ సబ్స్క్రయిబ్.

వద్ద ట్విట్టర్ లో నన్ను అనుసరించండి http://www.twitter.com/pagalvin