Ho un programma che genera file Xml da dati di un database. In breve codice esegue le seguenti operazioni:carattere non valido nel documento 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");
Quando ho uno sguardo al file XML che contiene il carattere non valido & # x 1 A;
<EXPORT>
<Test>
<Id>2</Id>
<Comment> Keyboard NB5 linked</Comment>
</Test>
</EXPORT>
Questo file XML non può essere aperto dal browser firefox dicendo carattere non valido ...
tale entità è riservato nella norma ISO 8859-1 e CP1252 e non deve essere resa dai browser. Ma perché XmlDocument restituisce xml che non può essere analizzato come valido - o è un documento xml valido che non può essere analizzato dai browser o importato da Excel e così via ... C'è un modo semplice per sbarazzarsi di quello riservato? caratteri non validi o codificandoli in modo che i browser non abbiano un problema con esso?
Molte grazie per la tua opinione e Tipps
Ho avuto lo stesso identico problema con i vari metodi XML per gli oggetti System.Data. Non sono sicuro di cos'altro potrebbero fare quei metodi. La loro alternativa è quella di spogliare i personaggi o lanciare un'eccezione. –