C# 保留字符串';s Xml编码字符

C# 保留字符串';s Xml编码字符,c#,linq-to-xml,C#,Linq To Xml,我需要更新一个XML文档;使用C#,最好是Linq到Xml。源XML文件具有以下节点: <characters>Lorem &#xD;Ipsum</characters> 当我用 copyEl.SetElementValue(ns + "characters", "Lorem1 &#xD;Ipsum2"); 输出的Xml具有要重新转义的编码字符的前导符号和: <characters>Lorem1 &amp;#xD;Ipsum2&l

我需要更新一个XML文档;使用C#,最好是Linq到Xml。源XML文件具有以下节点:

<characters>Lorem &#xD;Ipsum</characters>
当我用

copyEl.SetElementValue(ns + "characters", "Lorem1 &#xD;Ipsum2");
输出的Xml具有要重新转义的编码字符的前导符号和:

 <characters>Lorem1 &amp;#xD;Ipsum2</characters>
Lorem1&#除息的;Ipsum2

我希望保留原始字符串中的Xml编码;但是我不确定怎么做。有什么想法吗?

使用LINQtoXML或任何XML抽象类的好处在于,您不需要担心字符串编码。只需将字符串作为C#字符串传入,然后让linq将其转换为XML字符串:

copyEl.SetElementValue(ns + "characters", "Lorem1 \rIpsum2");

xml中存在空白,您可以使用

+1以各种方式处理空白,以提及如何使用适当的xml API。。。请注意,问题是关于读取时应规范化()的#xD。因此,我们需要仔细决定应该发生什么以及应该编码什么(即
\r
可能是错误的)。
 <characters>Lorem1 &amp;#xD;Ipsum2</characters>
copyEl.SetElementValue(ns + "characters", "Lorem1 \rIpsum2");