首页 > 解决方案 > C#:将超过 10k 行的 xml 加载到 XmlDocument 变量时删除特殊字符

问题描述

当 xml 有 '&'、'<' 和 '>' 时,下面的代码不起作用。

var HugeXmlVariable = TextArea1.Text.ToString();
XmlDocument xDocument = new XmlDocument();
xDocument.LoadXml(HugeXmlVariable);

事情已经尝试:

HugeXmlVariable = System.Security.SecurityElement.Escape(HugeXmlVariable);

HugeXmlVariable = HugeXmlVariable.ToSTrein().Replace("&", string.Empty).Replace(">", "&gt;").Replace("<", "&lt;").Replace("'", "&apos;").Replace("\"", "&quot;").ToString();

HugeXmlVariable = XmlConvert.DecodeName(HugeXmlVariable);

样本 Xml:

<?xml version="1.0" encoding="utf-16"?>
<Bottle>
<Tilt/>
<Colors> Blue & Red </Colors>
<Cap>L<00.001</Cap>
</Bottle>

没有任何效果。

标签: c#

解决方案


你可以试试下面的方法

    public static string RemoveSpecialCharacters(string str)
    {
        StringBuilder sb = new StringBuilder();
        foreach (char c in str)
        {
            if ((c >= '0' && c <= '9') || (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z') || c == '.' || c == '_')
            {
                sb.Append(c);
            }
        }
        return sb.ToString();
    }

推荐阅读