【发布时间】:2010-10-28 19:50:32
【问题描述】:
我有一个程序从数据库中的数据生成 Xml 文件。简而言之,它执行以下操作:
string dsn = "a db connection string";
XmlDocument d = new XmlDocument();
using (SqlConnection con = new SqlConnection(dsn)) {
con.Open();
string sql = "select id as Id, comment as Comment from Test where ... ";
using (SqlCommand cmd = new SqlCommand(sql, con)) {
DataSet ds = new DataSet("EXPORT");
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds, "Test");
d.LoadXml(ds.GetXml());
}
}
d.Save(@"c:\test.xml");
当我查看 xml 文件时,它包含无效字符 & # x 1 A ;
<EXPORT>
<Test>
<Id>2</Id>
<Comment> Keyboard NB5 linked</Comment>
</Test>
</EXPORT>
firefox 浏览器无法打开这个 xml 文件说无效字符...
该实体在 ISO 8859-1 和 CP1252 中保留,不应由浏览器呈现。但是为什么 XmlDocument 输出的 xml 不能被解析为有效 - 或者它是一个有效的 xml 文档,它不能被浏览器解析或被 Excel 导入等等...... 有没有一种简单的方法可以摆脱保留的“无效字符”或以浏览器没有问题的方式对其进行编码?
非常感谢您的意见和提示
【问题讨论】:
-
对于 System.Data 对象的各种 XML 方法,我遇到了完全相同的问题。我不确定这些方法还能做什么。他们的替代方法是去掉字符或抛出异常。