2011-05-04 167 views
4
xmlnode = xmldoc.CreateElement(dRow.ItemArray.GetValue(0).ToString()); 
xmlroot.AppendChild(xmlnode);  
xmlnode.InnerText = sub; 

回答

1

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

4

看看dRow.ItemArray.GetValue(0).ToString()的值。这听起来像它不是一个有效的元素名称,由于包含=符号。

创建一个名称从数据动态给出的元素相对较少。以这种方式指定元素的内容更为常见。

你究竟想达到什么目的?你的行中有什么?

5

您可以使用:

string name = XmlConvert.EncodeName(dRow.ItemArray.GetValue(0).ToString()); 

获得安全编码的名称,然后

xmlnode = xmldoc.CreateElement(name); 

然而,正如乔恩所指出的那样,这非常不寻常 - 而且编码名称并不美观;例如a=b变为a_x003D_b

1

当您尝试将Microsoft目录导出为XML时,生成的文件无法导入,并且您收到以下错误消息 “XML文件路径/文件名在行中包含错误。”“名称包含无效字符。” 如果使用Microsoft Visual Studio .NET验证XML目录,则会收到以下错误消息: “The'('character,hexadecimal value 0x28,can not begin a name。Line#,Position#” 发生此问题是因为Commerce Server导出不编码以下特殊字符:

The range 0x0021 – 0x002F includes ! “ # $ % & ‘ () * + , - ./
The range 0x03A – 0x0040 includes : ; <=> ? @ 
The range 0x007B – 0x007E includes { | } ~ 
The range 0x005B – 0x005E [ \ ] ^** 
相关问题