我曾尝试使用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();
}
任何人都可以帮我解决这个问题吗?
答案 0 :(得分:1)
你不能。 C#转换这样的字符:
< to <
> to >
& to &
如果允许,您可以销毁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字符串,因为没有其他方法可以在那里获得字符串。