【发布时间】:2012-02-01 14:52:07
【问题描述】:
xmlnode = xmldoc.CreateElement(dRow.ItemArray.GetValue(0).ToString());
xmlroot.AppendChild(xmlnode);
xmlnode.InnerText = sub;
【问题讨论】:
xmlnode = xmldoc.CreateElement(dRow.ItemArray.GetValue(0).ToString());
xmlroot.AppendChild(xmlnode);
xmlnode.InnerText = sub;
【问题讨论】:
你可以使用:
string name = XmlConvert.EncodeName(dRow.ItemArray.GetValue(0).ToString());
要获得一个安全的编码名称,然后
xmlnode = xmldoc.CreateElement(name);
然而;正如 Jon 所指出的,这是非常不寻常的——编码名称并不漂亮;例如a=b 变为a_x003D_b。
【讨论】:
查看dRow.ItemArray.GetValue(0).ToString() 的值。由于包含= 符号,这听起来不是一个有效的元素名称。
使用从数据中动态给出的名称来创建元素是比较少见的。以这种方式指定元素的 content 更为常见。
您到底想达到什么目的?你的行是什么?
【讨论】:
当您尝试将 Microsoft 目录导出到 XML 时,无法导入生成的文件,并且您会收到以下错误消息 “XML 文件路径/文件名在行包含错误。” “名称包含无效字符。” 如果您使用 Microsoft Visual Studio .NET 验证 XML 目录,您会收到以下错误消息: “'(' 字符,十六进制值 0x28,不能以名称开头。行号,位置号” 出现此问题的原因是 Commerce Server 导出未对以下特殊字符进行编码:
The range 0x0021 – 0x002F includes ! “ # $ % & ‘ ( ) * + , - . /
The range 0x03A – 0x0040 includes : ; < = > ? @
The range 0x007B – 0x007E includes { | } ~
The range 0x005B – 0x005E [ \ ] ^**
【讨论】:
标题就是你的答案。您不能在名称中使用“=”。
【讨论】: