如果我聲明一個新的Xelement和輸入字符串,例如address.line1 = "<address>"
以下語句在下面的代碼行中如何處理特殊字符,如<, >,/
?xelement如何處理特殊(xml)字符?
XElement a = new XElement("address",
new XElement("addressline1", address.Addressline1),
);
這會拋出錯誤還是會編碼用戶輸入的特殊字符?
如果我聲明一個新的Xelement和輸入字符串,例如address.line1 = "<address>"
以下語句在下面的代碼行中如何處理特殊字符,如<, >,/
?xelement如何處理特殊(xml)字符?
XElement a = new XElement("address",
new XElement("addressline1", address.Addressline1),
);
這會拋出錯誤還是會編碼用戶輸入的特殊字符?
答案:編碼的XElement人物 測試代碼
void Main()
{
string m = "<address/>";
XElement a = new XElement("address",
new XElement("addressline1",m)
);
Console.WriteLine(a);
}
結果
<address>
<addressline1><address/></addressline1>
</address>
如果你跑了,即使一個很小的應用程序,你會發現,它會轉換''<', '>和'&''到'<,''分別'>和'&。此外,人們會假設['string'是一個XElement對象的有效內容](http://msdn.microsoft.com/zh-cn/library/bb943882.aspx)它將應用任何轉換以確保它是適當的。另外,這與XML的* encoding *無關。不要混淆標準XML實體和編碼。 – user7116
@ user7116我嘗試使用LinqPad作爲DaveShaw建議。 –
[你會得到這樣的。](http://i.stack.imgur.com/lwOXq.png) – user7116
很(非常)容易發現。 –
@HenkHolterman我班太多大而複雜的測試這一刻:( –
@FloodGravemind然後得到LinqPad的副本,或者編寫一個簡單的控制檯應用程序,或一個單元測試:) – DaveShaw