Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用类似于ASP.NET的模板创建XML文件_C#_Asp.net_Xml - Fatal编程技术网

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

C# 如何使用类似于ASP.NET的模板创建XML文件,c#,asp.net,xml,C#,Asp.net,Xml,我需要用C生成一个XML文件 我想在一个主要是XML的文件中编写生成该文件的代码,其中包含代码,就像在ASP.NETMVC页面中一样 所以我想要一个代码文件,看起来像: <lots of angle brackets...> <% foreach(data in myData) { %> < <%= data.somefield %> <% } %> More angle brackets> 这将生

我需要用C生成一个XML文件

我想在一个主要是XML的文件中编写生成该文件的代码,其中包含代码,就像在ASP.NETMVC页面中一样

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

<lots of angle brackets...>

  <% foreach(data in myData)
     { %>

     < <%= data.somefield %>

  <% } %>

More angle brackets>
这将生成我的XML文件。如果有人告诉我如何在不增加IIS开销或不生成Web文件的情况下使用System.Web的一部分,我不会介意


我想使用模板,我想使用类似于ASP.NET的模板,在标准的ASPX文件中创建一个页面视图,但不包括主视图或任何其他内容。只要开始放进尖括号和其他所有东西。您需要做的一件事是设置内容类型。但这可以通过调用Response.ContentType=text/xml在您的操作中实现

MvcContrib中有一个XSLT视图引擎:

这可能会给你你所需要的


实际上,任何视图引擎都可以工作。。。尽管WebForms视图引擎会抱怨您编写的不是有效的HTML。

首先,使用XElements生成XML要容易得多。到处都有很多例子。只需搜索linqtoxml


或者,如果您确实需要进行模板制作,我建议您使用一个模板引擎,例如,而不是试图强迫ASP.NET为您进行模板制作。

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

教程


除此之外,使用Linq提供的新XML类,它们使以逻辑方式生成XML变得更加容易,尽管您不会深入到类似于C中模板的内容

如果您真的需要类似于模板的东西——我知道这不一定会顺利进行——那么您应该考虑在VB.NET中完成系统的这一部分,它确实明确支持类似于模板的XML生成,作为Linq到XML实现的一部分。至少你应该先看看VB.NET提供了什么,然后再放弃它


NET的本质意味着您不必使用VB.NET来做任何其他事情,您可以将它限制在生成XML所需的类和它的泛型,因为它与.NET一起提供,任何有能力的.NET程序员都应该能够理解周围的逻辑。

这里有什么问题吗?我看到许多完全可行的解决方案被修改成了否定的解决方案……问题不是问如何在C中创建XML,而是问如何使用类似于ASP.NET的模板在C中创建XML。我很想知道为什么这被否决,因为对于一个有能力的.NET开发人员来说,这是一个经过仔细鉴定和明智的答案
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();
}