我從一個StringBuilder生成一個XML文檔,基本上是這樣的:
十六進制值爲0x00是無效字符
string.Format("<text><row>{0}</row><col>{1}</col><textHeight>{2}</textHeight><textWidth>{3}</textWidth><data>{4}</data><rotation>{5}</rotation></text>
後來是這樣的:
XmlDocument document = new XmlDocument();
document.LoadXml(xml);
XmlNodeList labelSetNodes = document.GetElementsByTagName("labels");
for (int index = 0; index < labelSetNodes.Count; index++)
{
//do something
}
所有數據來自數據庫。 最近,我已經受夠了錯誤的幾個問題:
Hexadecimal value 0x00 is a invalid character, line 1, position nnnnn
但它並不一致。 有時候一些'空白'的數據會起作用。 '錯誤'的數據適用於某些電腦,但不適用於其他電腦。
在數據庫中,數據始終是空白字符串。它從來不是'空' ,在XML文件中,它出現爲< data>< /data>
,即在開始和結束之間沒有字符。 (但不確定這是否可以依賴,因爲我從「立即」窗口將它拉到vis studio並粘貼到文本板中)。
SQL服務器的版本可能存在差異(2008年會出現故障,2005年可能會出現故障),也可能會進行整理。 不確定這些是否有可能的原因?
但是完全相同的代碼和數據有時會失敗。問題出在哪裏?
是否真如後的「<」出來的'< data>< /data>'*用空格*?如果是這樣,你的XML已損壞,不能被信任。丟棄它。所有的。 –
@DourHighArch我發現唯一可行的方法就是將它燒掉。 – Sprague