【发布时间】:2012-06-17 16:54:43
【问题描述】:
我正在从 StringBuilder 生成 XML 文档,基本上类似于:
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
}
所有数据都来自数据库。 最近我遇到了一些错误问题:
十六进制值 0x00 是无效字符,第 1 行,位置 nnnnn
但它并不一致。 有时一些“空白”数据会起作用。 “错误”数据在某些 PC 上有效,但在其他 PC 上无效。
在数据库中,数据总是一个空字符串。它永远不是“空”
在 XML 文件中,它显示为 < data>< /data>,即在打开和关闭之间没有字符。 (但不确定这是否可以依赖,因为我将它从“即时”窗口中拉出并粘贴到 textpad 中)。
sql server 的版本(2008 会失败,2005 会工作)和排序规则也可能存在差异。 不确定这些是否是可能的原因?
但完全相同的代码和数据有时会失败。有什么想法吗?
【问题讨论】:
-
真的是
< data>< /data>在'后面有一个空格吗?如果是这样,您的 XML 已损坏且无法信任。丢弃它。全部。 -
@DourHighArch 我发现唯一可靠的方法就是烧掉它。
标签: .net sql-server xml