xelement如何处理特殊(xml)字符?
如果我声明一个新的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