xmlnode = xmldoc.CreateElement(dRow.ItemArray.GetValue(0).ToString());
xmlroot.AppendChild(xmlnode);
xmlnode.InnerText = sub;
答案 0 :(得分:6)
您可以使用:
string name = XmlConvert.EncodeName(dRow.ItemArray.GetValue(0).ToString());
获取安全的编码名称,然后
xmlnode = xmldoc.CreateElement(name);
然而;正如乔恩所说,这是非常不寻常的 - 编码的名字并不漂亮;例如,a=b
变为a_x003D_b
。
答案 1 :(得分:4)
查看dRow.ItemArray.GetValue(0).ToString()
的值。由于包含=
符号,听起来它不是有效的元素名称。
创建一个具有动态从数据中提供的名称的元素是相对罕见的。通过这种方式指定元素的内容更为常见。
你到底想要达到什么目的?你的排名是什么?
答案 2 :(得分:1)
当您尝试将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 [ \ ] ^**
答案 3 :(得分:0)
标题是你的答案。你不能在名字中使用'='。