【问题标题】:reproducing An invalid XML character (Unicode: 0x0)重现无效的 XML 字符(Unicode:0x0)
【发布时间】:2013-09-10 00:47:12
【问题描述】:

我在我的 XSL 中收到以下提到的错误: An invalid XML character (Unicode: 0x0) was found in the element content of the document.

不太清楚我为什么会得到它。我在互联网上发现一些帖子说这是因为一些 NULL 值,有些人说这是解析器的问题。这个错误是什么意思?

【问题讨论】:

标签: xml xslt unicode


【解决方案1】:

错误消息的含义与它所说的完全一样:您的文档中有一个代码点为零的“字符”,这是 XML 所不允许的。

为什么您会收到此错误 - 也就是说,这个零是如何出现在您的文档中的 - 我们无法从所提供的信息中知道这一点。

@sudhAnsu63 建议您如何修复文档以删除违规字符。但是修复坏文档并不能解决问题:您需要将数据损坏追查到其源头,并首先修复创建它们的过程。

【讨论】:

    【解决方案2】:

    有些字符无法被 xml 解析器识别。你需要更换/处理这些字符。 您可以在 C#/.Net 中使用以下扩展方法在解析之前从您的 xml 文档中替换这些字符。

    public static string CleanInvalidXmlChars(this string 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);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-10
      • 2011-09-05
      • 2017-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-26
      相关资源
      最近更新 更多