我需要在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类似的模板
答案 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();
}