Существует ли в .NET 4.0 класс навигации и чтения XML с поддержкой DLR? Например, представьте, что у меня есть этот XML:
<foo>
<bar>foobar is here</bar>
<bar>foobar is also here</bar>
<baz>foobar is not here</bar>
</foo>
Существует ли простой способ навигации по этому XML, например так:
var doc = SomeDlrEnabledParser.Parse (xmlString);
foreach (var node in doc.foo.bar)
{
if (node == "foobar is here")
DoSomething();
else
DoSomethingElse();
}
Я вижу множество причин, по которым вышеуказанный подход может быть проблематичным, в том числе пространства имен, атрибуты и элементы, различение коллекций и отдельных элементов, кодированный XML и текст и т. Д.
Но большая часть XML, с которой я имею дело, очень проста и доступна только для чтения, и я был бы готов принять разумное поведение по умолчанию в обмен на то, чтобы избежать "скобок и супа кавычек", которые характерны для работы с простым XML в мир до 4.0.
Например, оператор «точка» может проверять имена атрибутов перед именами подэлементов. В противном случае операции, не связанные с коллекцией, будут автоматически применяться к первому элементу (как это делает jQuery).
Содержит ли библиотека классов .NET 4.0 Framework что-то подобное? если нет, какие-либо рекомендации для хорошего проекта с открытым исходным кодом или образец библиотеки XML с поддержкой DLR?