sto generando un documento XML da uno StringBuilder, in fondo qualcosa di simile:
esadecimale valore 0x00 è un carattere non valido
string.Format("<text><row>{0}</row><col>{1}</col><textHeight>{2}</textHeight><textWidth>{3}</textWidth><data>{4}</data><rotation>{5}</rotation></text>
Più tardi, qualcosa di simile:
XmlDocument document = new XmlDocument();
document.LoadXml(xml);
XmlNodeList labelSetNodes = document.GetElementsByTagName("labels");
for (int index = 0; index < labelSetNodes.Count; index++)
{
//do something
}
Tutti i dati provengono da un Banca dati. Recentemente ho avuto alcuni problemi con l'errore:
Hexadecimal value 0x00 is a invalid character, line 1, position nnnnn
Ma non è coerente. A volte funzionano alcuni dati "vuoti". I dati "difettosi" funzionano su alcuni PC, ma non su altri.
Nel database, i dati sono sempre una stringa vuota. Non è mai 'nullo' e nel file XML, risulta come < data>< /data>
, cioè senza carattere tra l'apertura e la chiusura. (ma non sono sicuro se questo possa essere invocato mentre lo sto tirando dalla finestra "immediata" è vis studio e lo incolla nel textpad).
Ci sono probabilmente differenze nelle versioni di SQL Server (2008 è dove fallirebbe, 2005 funzionerebbe) e anche le regole di confronto. Non sei sicuro che qualcuno di questi sia una probabile causa?
Ma a volte lo stesso codice e i dati a volte falliscono. Qualche idea in cui si trova il problema?
lo fa davvero venire fuori come '' < data>< /data> * con uno spazio dopo il '<' *? Se è così, il tuo XML è corrotto e non può essere considerato attendibile. Scarta. Tutto. –
@DourHighArch Ho trovato l'unico modo sicuro per masterizzarlo. – Sprague