-5

我曾尝试使用 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();            
}

谁能帮我解决这个问题?

4

2 回答 2

1

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

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

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

于 2013-05-21T13:34:07.987 回答
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();            
}

我只能假设您已经覆盖了在此处返回 XML 字符串的ToString方法,rss因为没有其他方法可以在那里获取字符串。

于 2013-05-21T13:38:48.133 回答