2011-05-04 243 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 [ \ ] ^** 
相關問題