0

我必须通过 SSIS 将 XML 数据加载到 SQL Server 中,在 XML 源中我得到一些十六进制符号,所以当我将该文件作为 SSIS 中的源时,它不接受十六进制值,我该如何解析或删除那些(十六进制符号)。

错误:字符 ' ',十六进制值 0x2 在 XML 文档中是非法的。

有什么方法可以删除那些使用 XSLT 的,如果有,请让我以正确的方式。

4

2 回答 2

0

错误:字符 ' ',十六进制值 0x2 在 XML 文档中是非法的。

有什么方法可以删除那些使用 XSLT 的,如果有,请让我以正确的方式。

不,这是一个 XML 解析器问题,而不是 XSLT 问题。XSLT 处理器只能看到它使用的特定 XML 解析器解析 XML 文档的结果。

因此,如果使用的 XSLT 处理器允许使用不同的 XML 解析器,并且您可以找到使用 XML 1.1 解析器的方法,那么只需设置 XSLT 处理器以使用这个特定的解析器。

在 XSLT 3.0(仍然是一个工作草案)中可能有一个函数可以接受原始文本并将其解析为 XML 文档/片段。这样的函数可能有一个参数,即要使用哪种类型的 XML 解析器——XML 1.0 或 XML 1.1。

于 2012-05-04T12:26:31.257 回答
0

您的问题是 XML 本身不允许控制字符,即使编码为字符实体也是如此。XSLT 也无法解析它。

XML 1.1 应该能够将字符作为实体包含在内,但不能作为文本包含在内。

请参阅“无效的 XML 文件?” 和类似问题的“XML 任务错误消息十六进制无效字符”

于 2012-05-04T10:22:57.643 回答