C# Xelement将特殊字符转换为字符串

C# Xelement将特殊字符转换为字符串,c#,xelement,C#,Xelement,下面的XElement将特殊字符“&”转换为“&;” 我希望它是“&”而不是& XElement newElement = new XElement("testting", "wow&testvalue"); 我希望它是“&”而不是& 那么它将是无效的XML。为什么需要无效的XML LINQ to XML用有效的XML表示您请求的文本。这就是它的本意。如果稍后(通过这个或任何其他体面的XML API)请求元素的文本,您将得到wow&testvalue 正如Tim所说,您可以

下面的
XElement
将特殊字符“&”转换为“
&;

我希望它是“&”而不是
&

XElement newElement = new XElement("testting", "wow&testvalue");
我希望它是“&”而不是&

那么它将是无效的XML。为什么需要无效的XML

LINQ to XML用有效的XML表示您请求的文本。这就是它的本意。如果稍后(通过这个或任何其他体面的XML API)请求元素的文本,您将得到
wow&testvalue

正如Tim所说,您可以使用CDATA部分:

var element = new XElement("testing", new XCData("wow&testvalue"));

但是您不能告诉LINQ to XML不要转义它需要转义的内容…

&
是XML中的一个特殊字符。您需要将文本包装在CDATA块中,以将其保留为“&”转换为“amp”。类似地,对于“”到“lt”和“gt”特殊字符,我同意@Tim<代码>
大部分时间都有效。实际上,我们正在数据库中保存“wow&testvalue”。当我尝试上面的表达式时,它保存为“[CDATA[wow&testvalue]]”。我想保存“哇&测试值”。我如何替换它?@user2392525:那么,您没有保存XML,或者不应该保存。听起来你应该在这个问题上提供更多的信息;基于您提供的非常有限的上下文,我已经提供了最好的答案。