& # 39; = & # 39;字符,十六进制值0x3D,不能包含在名称中
本文关键字:包含 十六进制 字符 0x3D 不能 | 更新日期: 2023-09-27 17:54:28
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);
然而;正如乔恩所指出的,这是非常不寻常的——一个编码的名字并不漂亮;例如,a=b
变为a_x003D_b
。
查看dRow.ItemArray.GetValue(0).ToString()
的值。听起来它不是一个有效的元素名称,因为它包含一个=
符号。
创建具有名称的元素的情况相对少见。以这种方式指定元素的内容更为常见。
你到底想达到什么目的?你那排是什么?当您尝试将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 [ ' ] ^**
标题就是你的答案。不能在名字中使用'='