C#中的XMLdocument无效字符错误

时间:2015-07-31 13:25:40

标签: c# xml

我正在使用下面的

将Json转换为XMl文档
var RawPostingXml = JsonConvert.DeserializeXmlNode(CleanInvalidXmlChars((string)Message), "row");

            using (var stringWriter = new StringWriter())
            using (var xmlTextWriter = XmlWriter.Create(stringWriter))
            {
                RawPostingXml.WriteTo(xmlTextWriter);    // GETTING ERROR HERE
                xmlTextWriter.Flush();
                Xml = stringWriter.GetStringBuilder().ToString();
            }

为了删除非法字符,我使用下面的代码。

public static string CleanInvalidXmlChars(string text)
        {
            string re = @"[^\x07\x0A\x0D\x20-\xD7FF\xE000-\xFFFD\x10000-x10FFFF]";
            return Regex.Replace(text, re, "");
        }

但是我得到以下错误,

Exception - '', hexadecimal value 0x07, is an invalid character. Line 118, position 446.

更新:

我的意见:

\u00a0 Our values and principles guide us forward each day. \u0007\u000e\u0004 \u3000\u000e\f \n \n \n \n \n\n\n\n 

我的代码出了什么问题?任何人都可以帮助我吗?

谢谢,

1 个答案:

答案 0 :(得分:2)

在正则表达式中,元字符[^ ]否定字符列表。它会匹配列表中的内容。

除了错误的字符外,你基本上删除了整个XML。