Comments 5
Простите, но не могли бы вы указать цель, ради которой этого делалось? Т. е. то, о чем вы говорите в первой строке «функционал, формирующий по некоторому алгоритму разнообразный xml» — что за алгоритм и что за разнобразный xml?
Просто есть впечатление, что древовидный System.Xml.Linq (XElement и Co.) здесь будет намного нагляднее и проще. А если нужно парсить какие-то куски и из них генерацию делать, то и T4 можно прикрутить для генерации.
Просто есть впечатление, что древовидный System.Xml.Linq (XElement и Co.) здесь будет намного нагляднее и проще. А если нужно парсить какие-то куски и из них генерацию делать, то и T4 можно прикрутить для генерации.
Конкретно эти два класса делались для написания тестов. Цель теста — определить некоторые входные данные, сформировать на их основе тестируемым алгоритмом xml и сравнить этот xml с эталонным образцом.
Соответственно, первая и основная цель — наглядно и быстро определить (ну и сравнить) этот самый Xml — чтобы тест был понятного вида. Синтаксис XDocument для определения xml все-таки более громоздок, хотя и более полнофункционален.
Соответственно, первая и основная цель — наглядно и быстро определить (ну и сравнить) этот самый Xml — чтобы тест был понятного вида. Синтаксис XDocument для определения xml все-таки более громоздок, хотя и более полнофункционален.
Можно было бы на vb.net сборку написать и использовать ее. Там синтаксис создание XDocument очень приятный. Например:
Dim srcTree As XDocument = _
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!--This is a comment-->
<Root>
<Child1>data1</Child1>
<Child2>data2</Child2>
<Child3>data3</Child3>
<Info1>info1</Info1>
</Root>
Очень интересная фича, не знал о ней, правда и на vb почти не пишу. Хотя, опять же, для моей задачи (где надо еще и переменные в качестве значений атрибутов использовать) было бы тоже громоздко. Или оно умеет и переменные вставлять?
Вот небольшой пример (нашел на stackoverflow, сам на vb.net не пишу):
По идее, все что нужно вставить, можно экранировать с помощью <%= %>
Dim map As XDocument = <?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<%= From n In Nodes.Cast(Of Node)() _
Select <url>
<loc><%= AbsoluteRoot + Url.RouteUrl("IdOnly", New With {.id = n.Id}) %></loc>
</url> %>
</urlset>
По идее, все что нужно вставить, можно экранировать с помощью <%= %>
Sign up to leave a comment.
Использование dynamic для быстрого создания Xml