& # 39; = & # 39;字符,十六进制值0x3D,不能包含在名称中

本文关键字:包含 十六进制 字符 0x3D 不能 | 更新日期: 2023-09-27 17:54:28

 xmlnode = xmldoc.CreateElement(dRow.ItemArray.GetValue(0).ToString());
 xmlroot.AppendChild(xmlnode);     
 xmlnode.InnerText = sub;  

& # 39; = & # 39;字符,十六进制值0x3D,不能包含在名称中

您可以使用:

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 [ ' ] ^**

标题就是你的答案。不能在名字中使用'='