我有一个函数,在该函数中,我将一个字符串传递为名为filterXML的参数,该字符串在其中一个属性中包含“&”。

我知道XML无法识别它,并且会给我带来错误。这是我的代码:

 public XmlDocument TestXMLDoc(string filterXml)
{
    XmlDocument doc = new XmlDocument();
    XmlNode root = doc.CreateElement("ResponseItems");

    // put that root into our document (which is an empty placeholder now)
    doc.AppendChild(root);

    try
    {
        XmlDocument docFilter = new XmlDocument();
        docFilter.PreserveWhitespace = true;

        if (string.IsNullOrEmpty(filterXml) == false)
            docFilter.LoadXml(filterXml); //ERROR THROWN HERE!!!

我应该在代码中进行哪些更改以编辑或解析filterXml?我的filterXml看起来像这样:
<Testing>
<Test>CITY & COUNTY</Test>
</Testing>

我将字符串值从&更改为&。这是我的代码:
string editXml = filterXml;
    if (editXml.Contains("&"))
    {
        editXml.Replace('&', '&amp;');
    }

但是它在if语句内部给了我一个错误:太多的文字。

最佳答案

上面显示的文件不是格式正确的XML,因为“&”号不能转义。

您可以尝试:

<Testing>
  <Test>CITY &amp; COUNTY</Test>
</Testing>

或者:
<Testing>
  <Test><![CDATA[CITY & COUNTY]]></Test>
</Testing>

关于c# - XmlDocument throw "An error occurred while parsing EntityName",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7638771/

10-11 04:19