如何使用类似于ASP.NET的模板创建XML文件

时间:2008-09-30 13:28:31

标签: c# asp.net xml

我需要在C#中生成一个XML文件。

我想在一个文件中编写生成它的代码,该文件主要是带有代码的XML,就像在ASP.NET MVC页面中一样。

所以我想要一个看起来像的代码文件:

<lots of angle brackets...>

  <% foreach(data in myData)
     { %>

     < <%= data.somefield %>

  <% } %>

More angle brackets>

这将生成我的XML文件。我不介意使用System.Web的一部分,如果有人告诉我如何在没有IIS开销或克服一代网络文件的情况下做到这一点。

我想使用模板,我想要与ASP.NET类似的模板

5 个答案:

答案 0 :(得分:2)

首先,使用XElements更容易生成XML。周围有很多例子。只需搜索“Linq to XML。”

或者,如果您绝对需要进行模板操作,我建议使用模板引擎,例如NVelocity,而不是试图让ASP.NET为您执行此操作。

答案 1 :(得分:0)

除此之外 - 使用Linq提供的新XML类 - 它们使得以合理的方式生成XML变得容易得多,尽管你不会在C#中找到类似于模板的东西。

如果你真的需要一些像那样的模板 - 而且我知道这不一定很好 - 你应该看看在VB.NET中做这部分系统 有明确的支持XML生成等模板,作为其Linq to XML实现的一部分。至少你应该在解除它之前先看看VB.NET提供的内容。

.NET的本质意味着您不必将VB.NET用于其他任何事情,您可以将其限制为执行XML生成所必需的类及其“通用”的意义。随.NET提供,任何有能力的.NET程序员都应该能够理解周围的逻辑。

答案 2 :(得分:-1)

在标准ASPX文件中创建一个PageView,但不包括master或其他任何内容。刚开始放入尖括号和其他一切。您需要做的一件事是设置内容类型。但是,可以通过调用Response.ContentType =“text / xml”;

在您的操作中完成

答案 3 :(得分:-1)

这里有一个XSLT View Enging in MvcContrib: http://mvccontrib.googlecode.com/svn/trunk/src/MvcContrib.XsltViewEngine/

这可能会为您提供所需的信息。

(任何视图引擎都可以工作,实际上......虽然WebForms视图引擎会抱怨你写的是无效的HTML。

答案 4 :(得分:-1)

从代码中执行此操作的最简单方法是使用System.Xml中的XMLWriter类。

教程here

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();
}