Как создать XML-файл с использованием шаблонов, аналогичных ASP.NET - PullRequest
1 голос
/ 30 сентября 2008

Мне нужно создать файл XML в C #.

Я хочу написать код, который генерирует это, в файле, который в основном является XML, с кодом внутри него, как я могу на странице ASP.NET MVC.

Итак, я хочу файл кода, который выглядит следующим образом:

<lots of angle brackets...>

  <% foreach(data in myData)
     { %>

     < <%= data.somefield %>

  <% } %>

More angle brackets>

Это сгенерирует мой XML-файл. Я не возражаю против использования части System.Web, если кто-то скажет мне, как я могу это сделать без затрат IIS или создания нового веб-файла.

Я хочу использовать шаблоны и хочу использовать шаблоны, аналогичные ASP.NET

Ответы [ 5 ]

2 голосов
/ 30 сентября 2008

Во-первых, НАМНОГО проще генерировать XML с использованием XElements. Есть много примеров, плавающих вокруг. Просто найдите «Linq to XML».

В качестве альтернативы, если вам абсолютно необходимо использовать шаблоны, я бы предложил использовать механизм шаблонов, например NVelocity , вместо того, чтобы пытаться заставить ASP.NET сделать это за вас.

0 голосов
/ 30 сентября 2008

В дополнение к вышеизложенному - используйте новые классы XML, поставляемые с Linq, - они значительно упрощают генерацию XML логическим способом, хотя вы не будете заниматься чем-то похожим на шаблон в C #.

Если вам действительно нужен какой-то шаблон, как тогда - и я знаю, что это не обязательно пойдет хорошо - вы должны взглянуть на выполнение этой части системы в VB.NET, которая имеет явно поддерживает для шаблона как генерация XML как часть его реализации Linq to XML. По крайней мере, вы должны посмотреть на то, что предлагает VB.NET, прежде чем отклонить его.

Природа .NET означает, что вам не нужно использовать VB.NET для чего-либо другого, вы можете ограничить его классами, необходимыми для генерации XML, и его «универсальным» в том смысле, что он поставляется с .NET, и окружающая логика должна быть понятна любому компетентному программисту .NET.

0 голосов
/ 30 сентября 2008

Самый простой способ сделать это из кода - использовать класс XMLWriter в System.Xml.

Учебник здесь .

XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.IndentChars = ("    ");
using (XmlWriter writer = XmlWriter.Create("books.xml", settings))
{
    // Write XML data.
    writer.WriteStartElement("book");
    writer.WriteElementString("price", "19.95");
    writer.WriteEndElement();
    writer.Flush();
}
0 голосов
/ 30 сентября 2008

Здесь вы найдете XSLT View Enging в MvcContrib: http://mvccontrib.googlecode.com/svn/trunk/src/MvcContrib.XsltViewEngine/

Это, вероятно, может дать вам то, что вам нужно.

(на самом деле любой из механизмов просмотра будет работать ... хотя механизм просмотра WebForms будет жаловаться, что то, что вы пишете, не является допустимым HTML.

0 голосов
/ 30 сентября 2008

Создайте PageView в стандартном файле ASPX, но не включайте мастер или что-либо еще. Просто начните вставлять угловые скобки и все остальное. Единственное, что вам нужно сделать, это установить тип контента. Но это можно сделать в вашем действии, вызвав Response.ContentType = "text / xml";

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...