Еве еден брз пример, со користење 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" е стринг променлива, но можете да го користите товарот() метод на поток ако ви се допаѓа.
"Резултати" е етикета на веб форма и кога овој код извршува, тоа би изгледало вака:
Јас не сум работел надвор како да го решите резултатите се уште, па јас ќе го оставиме тоа за во иднина блог пост.
</крајот>
Да се претплатите на мојот блог.
Следете ме на Twitter во http://www.twitter.com/pagalvin