У меня есть программа, которая генерирует 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>
Этот XML-файл не может быть открыт браузером Firefox с неверным знаком ...
Этот объект зарезервирован в ISO 8859-1 и CP1252 и не должен отображаться браузерами. Но почему XmlDocument выводит xml, который не может быть проанализирован как действительный, или это действительный документ xml, который просто не может быть проанализирован браузерами или импортирован в Excel и т. Д.
Есть ли простой способ избавиться от этих зарезервированных «недопустимых символов» или кодировать их так, чтобы у браузеров не было с этим проблем?
Большое спасибо за ваше мнение и советы