我正在使用XDocument来切换xml文档中的值。
在新值中,我需要使用字符'&' (符号)
但是在XDocument.save()之后,xml改为&
!
我尝试使用编码和东西......没有用
答案 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
重复