我必须通过 SSIS 将 XML 数据加载到 SQL Server 中,在 XML 源中我得到一些十六进制符号,所以当我将该文件作为 SSIS 中的源时,它不接受十六进制值,我该如何解析或删除那些(十六进制符号)。
错误:字符 ' ',十六进制值 0x2 在 XML 文档中是非法的。
有什么方法可以删除那些使用 XSLT 的,如果有,请让我以正确的方式。
错误:字符 ' ',十六进制值 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。
您的问题是 XML 本身不允许控制字符,即使编码为字符实体也是如此。XSLT 也无法解析它。
XML 1.1 应该能够将字符作为实体包含在内,但不能作为文本包含在内。
请参阅“无效的 XML 文件?” 和类似问题的“XML 任务错误消息十六进制无效字符”。