使用TextWriter编写XML文档

时间:2013-05-21 13:30:25

标签: c# .net xml asp.net-mvc

我曾尝试使用Textwriter编写XML,但我发现我无法写字符< > '“& to the file。

我写的课程如下:

public void Write_File(rss r, string fileName)//-- rss here is a class I built in other place
{
    XmlSerializer serializer = new XmlSerializer(typeof(rss));
    TextWriter textWriter = new StreamWriter(path + fileName);//-- path is directory path to save xml file
    serializer.Serialize(textWriter, r);
    textWriter.Close();            
}

任何人都可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

你不能。 C#转换这样的字符:

< to &lt; 
> to &gt;
& to &amp;

如果允许,您可以销毁XML。如果您需要添加标签,则不能简单地使用序列化程序。您需要使用代码构建文档,例如表单XMLDocument class

答案 1 :(得分:0)

只需在项目中包含System.Web程序集,并利用HttpUtility类对字符串进行编码,如下所示:

public void Write_File(rss r, string fileName)//-- rss here is a class I built in other place
{
    XmlSerializer serializer = new XmlSerializer(typeof(rss));
    TextWriter textWriter = new StreamWriter(path + fileName);
    serializer.Serialize(textWriter, HttpUtility.HtmlEncode(r));
    textWriter.Close();            
}

我只能假设你已经覆盖ToString rss方法来返回一个XML字符串,因为没有其他方法可以在那里获得字符串。