Архива на ознаки: LINQ

Парсирање на XML со LINQ

Еве еден брз пример, со користење LINQ да анализирам некои  XML и да добиете на слатки, слатка атрибути во него.

Еве на XML сакам да го анализирам:

<?XML верзија = "1,0" кодирање = "UTF-8" ?>
<DeafultConfigurationSets>
  <PageLayouts>

    <PageLayout име = "xyzzy">
      <Јазичиња>
        <Табот TabOrder = "1" Табела = "х" SharePointContentType = "на" AdditionalConstraints = "AC1" />
        <Табот TabOrder = "2" Табела = "y" SharePointContentType = "б" AdditionalConstraints = "ac2" />
      </Јазичиња>
    </PageLayout>

    <PageLayout име = "xyzzy2">
      <Јазичиња>
        <Табот TabOrder = "100" Табела = "х" SharePointContentType = "на" AdditionalConstraints = "AC1" />
        <Табот TabOrder = "101" Табела = "y" SharePointContentType = "б" AdditionalConstraints = "ac2" />
        <Табот TabOrder = "103" Табела = "Z" SharePointContentType = "в" AdditionalConstraints = "AC3" />
      </Јазичиња>
    </PageLayout>

  </PageLayouts>
</DeafultConfigurationSets>

Сакам да се изгради некои табови во траење од анализирањето на погоре.  Мој јазичиња зависи од формата на страната.  Ако името на мојата страница распоред е "xyzzy2", тогаш сакам да се јазичиња 100, 101 и 103 (табовите во <PageLayout име = "xyzzy2">).

Еве LINQ дека тоа го прави:

беше allTabs =
              од стр во
                  XElement.Parse(theXmlToParse).
                 
Елементи("PageLayouts").
                  Елементи("PageLayout")
              каде (p.Attribute("Името").Value.Equals("Xyzzy2"))
              од m во p.Elements("Јазичиња").Елементи("Tab")
              изберете м;

          Results.Text = string.Empty;

          foreach (ATAB беше поставен allTabs)
          {
              Results.Text =
                  "Tab Побарувања: " + aTab.Attribute("TabOrder").Вредност + " |" +
                  "Tab Етикета: " + aTab.Attribute("Табела").Вредност + " | " +
                  "SharePointContentType: " + aTab.Attribute("SharePointContentType").Вредност + " | " +
                  "AdditionalConstraints: " + aTab.Attribute("AdditionalConstraints").Вредност + " R";
          }

Во погоре, променливата "theXmlToParse" е стринг променлива, но можете да го користите товарот() метод на поток ако ви се допаѓа.

"Резултати" е етикета на веб форма и кога овој код извршува, тоа би изгледало вака:

SNAGHTML11cd2e7c

Јас не сум работел надвор како да го решите резултатите се уште, па јас ќе го оставиме тоа за во иднина блог пост.

</крајот>

Да се ​​претплатите на мојот блог.

Следете ме на Twitter во http://www.twitter.com/pagalvin