2013-07-01 352 views
-4

如果我聲明一個新的Xelement和輸入字符串,例如address.line1 = "<address>"以下語句在下面的代碼行中如何處理特殊字符,如<, >,/xelement如何處理特殊(xml)字符?

XElement a = new XElement("address", 
        new XElement("addressline1", address.Addressline1), 
           ); 

這會拋出錯誤還是會編碼用戶輸入的特殊字符?

+5

很(非常)容易發現。 –

+0

@HenkHolterman我班太多大而複雜的測試這一刻:( –

+5

@FloodGravemind然後得到LinqPad的副本,或者編寫一個簡單的控制檯應用程序,或一個單元測試:) – DaveShaw

回答

1

答案:編碼的XElement人物 測試代碼

void Main() 
{ 
string m = "<address/>"; 
XElement a = new XElement("address", 
         new XElement("addressline1",m) 
            ); 
Console.WriteLine(a); 
} 

結果

<address> 
     <addressline1>&lt;address/&gt;</addressline1> 
     </address> 
+0

如果你跑了,即使一個很小的應用程序,你會發現,它會轉換''<', '>和'&''到'<,''分別'>和'&。此外,人們會假設['string'是一個XElement對象的有效內容](http://msdn.microsoft.com/zh-cn/library/bb943882.aspx)它將應用任何轉換以確保它是適當的。另外,這與XML的* encoding *無關。不要混淆標準XML實體和編碼。 – user7116

+0

@ user7116我嘗試使用LinqPad作爲DaveShaw建議。 –

+1

[你會得到這樣的。](http://i.stack.imgur.com/lwOXq.png) – user7116