文字&符号的Xml语法错误字符

时间:2015-02-17 13:55:32

标签: c# xml

我有方法来替换xml

Replace方法:

public string EscapeXMLValue(string xmlString)
{
            if (xmlString == null)
                throw new ArgumentNullException("xmlString");

            return xmlString.Replace("&", "&");
}

这是我的代码,我得到一个例外:

我有xml并尝试解析之后我想使用.LoadXml

  XML = EscapeXMLValue(XML); // Parse & here

  xmlDoc.LoadXml(XML); // I get error here

XML:

<Vehicle>HB ICON 1.5 DCI 90 S&amp;S</Vehicle>

错误:

  

解析EntityName时发生错误。第22503行,第40位。

如果我将&amp;替换为&,则可行,但如果我将&替换为&amp;,则会显示异常。

如何解决&amp;的问题?我该如何删除它或做任何事情?

2 个答案:

答案 0 :(得分:1)

格式良好的XML除了作为实体引用的一部分外,不能包含未转义的&字符。当您将&amp;替换为&时,除了使您的XML格式错误之外,您无其他任何事情。当然,简单的答案是,不要这样做。

答案 1 :(得分:0)

  

如何解决&amp;?

的问题

将它放入CDATA部分以通知Xml编译器它被视为文字

 <Vehicle><![CDATA[HB ICON 1.5 DCI 90 S&amp;S]]></Vehicle>