XDocument节省&而不仅仅是&

时间:2011-12-11 14:14:33

标签: c# .net xml linq-to-xml ampersand

我正在使用XDocument来切换xml文档中的值。 在新值中,我需要使用字符'&' (符号) 但是在XDocument.save()之后,xml改为&

我尝试使用编码和东西......没有用

4 个答案:

答案 0 :(得分:4)

XDocument正在做它应该做的事情。

&是无效的XML。 (它是未完成的角色/实体参考)

答案 1 :(得分:3)

&表示XML中的“实体开始”,因此如果您想要将&作为数据包含在内,则必须将其表示为实体 - &(或在CDATA块)。

您所描述的是正常行为,否则XML会破坏。

答案 2 :(得分:0)

有两种选择。确保对XML文档中的所有内容进行正确的XML编码/解码。请记住,HTML和XML编码/解码略有不同。

选项二是对xml中可能包含无效元素的任何内容使用base64编码。

答案 3 :(得分:0)

您的输出文件app.config是否应该是XML文件?

如果是,那么&必须以&转义。

如果不是,那么您应该使用文本输出方法而不是xml输出方法:使用<xsl:output method='text'/>

PS:此问题似乎与How can I add an ampersand for a value in a ASP.net/C# app config file value

重复