十六进制值0x0B,是XML中的无效字符问题

use*_*138 6 xml asp.net

在此处输入图片说明

我正在例外

'',十六进制值0x0B,是无效字符。23行,位置22。

我已经尝试过Here的解决方案,但是它对我不起作用。由于我的项目为3.5版本,因此无法使用XmlConvert.IsXmlChar方法MSDN

怎么处理呢?

sud*_*u63 7

您可以使用以下方法替换这些无效字符。

public static string CleanInvalidXmlChars(this string StrInput)
    {
        //Returns same value if the value is empty.
        if (string.IsNullOrWhiteSpace(StrInput))
        {
            return StrInput;
        }
        // From xml spec valid chars:
        // #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]    
        // any Unicode character, excluding the surrogate blocks, FFFE, and FFFF.
        string RegularExp = @"[^\x09\x0A\x0D\x20-\xD7FF\xE000-\xFFFD\x10000-x10FFFF]";
        return Regex.Replace(StrInput, RegularExp, String.Empty);
    }
Run Code Online (Sandbox Code Playgroud)