Вот быстрый пример с использованием LINQ для разбора некоторых XML и получить на сладкий, сладкий атрибуты в нем.
Вот я хочу для разбора XML:
<?Версия XML = "1.0" кодирование = "utf-8" ?>
<DeafultConfigurationSets>
<PageLayouts><PageLayout имя = «xyzzy»>
<Вкладки>
<Вкладка TabOrder = "1" TabLabel = "x" SharePointContentType = "" AdditionalConstraints = «ac1» />
<Вкладка TabOrder = "2" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = «ac2» />
</Вкладки>
</PageLayout><PageLayout имя = «xyzzy2»>
<Вкладки>
<Вкладка TabOrder = "100" TabLabel = "x" SharePointContentType = "" AdditionalConstraints = «ac1» />
<Вкладка TabOrder = "101" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = «ac2» />
<Вкладка TabOrder = "103" TabLabel = "z" SharePointContentType = "c" AdditionalConstraints = «ac3» />
</Вкладки>
</PageLayout></PageLayouts>
</DeafultConfigurationSets>
Я хочу создать несколько вкладок во время выполнения путем синтаксического анализа выше. Моя вкладки зависит от макета страницы. Если моя макета страницы имя «xyzzy2» тогда я хочу получить вкладки 100, 101 и 103 (вкладки в <PageLayout имя = «xyzzy2»>).
Вот LINQ, который делает это:
var allTabs =
от p в
XElement.Parse(theXmlToParse).
Элементы(«PageLayouts»).
Элементы(«PageLayout»)
где (p.Attribute(«имя»).Value.Equals(«xyzzy2»))
от м в p.Elements(«Вкладки»).Элементы(«Закладка»)
Выберите m;Results.text = строка.Пустой;
по каждому элементу (var aTab в allTabs)
{
Results.Text =
"Порядок табуляции: " + aTab.Attribute(«TabOrder»).Значение + " |" +
"Вкладку ярлык: " + aTab.Attribute(«TabLabel»).Значение + " | " +
"SharePointContentType: " + aTab.Attribute(«SharePointContentType»).Значение + " | " +
"AdditionalConstraints: " + aTab.Attribute(«AdditionalConstraints»).Значение + «r»;
}
В приведенном выше, Строковая переменная является переменная «theXmlToParse», но вы можете использовать нагрузки() Метод потока, если вам нравится.
«Результаты» — лейбл в веб-форме и когда этот код выполняется, Он выглядит следующим образом:
Я еще не работал, как сортировать результаты еще не, так что я оставлю это для будущего блога.
</конец>
Следуй за мной по щебетать на http://www.twitter.com/pagalvin