xelement如何处理特殊(xml)字符?

问题描述:

如果我声明一个新的Xelement和输入字符串,例如address.line1 = "<address>"以下语句在下面的代码行中如何处理特殊字符,如<, >,/xelement如何处理特殊(xml)字符?

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

这会抛出错误还是会编码用户输入的特殊字符?

+5

很(非常)容易发现。 –

+0

@HenkHolterman我班太多大而复杂的测试这一刻:( –

+5

@FloodGravemind然后得到LinqPad的副本,或者编写一个简单的控制台应用程序,或一个单元测试:) – DaveShaw

答案:编码的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