Tôi có một chương trình đang tạo Tệp Xml từ dữ liệu ra khỏi cơ sở dữ liệu. Trong mã ngắn nó như sau:ký tự không hợp lệ trong tài liệu 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");
Khi tôi có một cái nhìn tại xml nộp nó chứa các nhân vật không hợp lệ & # x 1 A;
<EXPORT>
<Test>
<Id>2</Id>
<Comment> Keyboard NB5 linked</Comment>
</Test>
</EXPORT>
file xml này không thể được mở bằng trình duyệt firefox nói nhân vật không hợp lệ ...
Đó Entity được dành riêng trong ISO 8859-1 và CP1252 và không nên được trả lại bởi trình duyệt. Nhưng tại sao XmlDocument đầu ra xml không thể phân tích cú pháp là hợp lệ - hoặc nó là một tài liệu xml hợp lệ mà không thể được phân tích cú pháp bởi Trình duyệt hoặc được nhập bởi Excel và ... Có cách nào dễ dàng để loại bỏ dữ liệu đó ký tự không hợp lệ hoặc mã hóa chúng theo cách mà Trình duyệt không gặp sự cố với nó?
Rất cám ơn ý kiến của bạn và Tipps
Tôi đã có cùng một vấn đề chính xác với các phương thức XML khác nhau cho các đối tượng System.Data. Tôi không chắc chắn những gì khác những phương pháp sẽ làm mặc dù. Thay thế của họ là để loại bỏ các nhân vật hoặc ném một ngoại lệ. –