使用textwwriter编写XML

本文关键字:XML 编写 textwwriter 使用 | 更新日期: 2023-09-27 18:14:31

我试过用Textwriter写XML,但是我发现我不能写字符<> ' " &到那个文件

我写的类如下:

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

谁能帮我解决这个问题?

使用textwwriter编写XML

你就是不能。c#转换这样的字符:

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

如果允许,您可以销毁您的XML。如果需要添加标记,就不能简单地使用序列化器。您需要使用代码构建文档,例如XMLDocument类

只需在项目中包含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();            
}

,我只能假设你已经覆盖了rssToString方法,在这里返回一个XML字符串,因为没有其他的方法你会得到一个字符串。