我必须通过SSIS将XML数据加载到SQL Server中,在XML Source中我得到一些十六进制符号所以当我在SSIS中将该文件作为Source提供时,它不接受十六进制值,我该如何解析或删除那些(十六进制符号)。
错误:字符'',十六进制值0x2在XML文档中是非法的。
有没有办法删除使用XSLT的那些,如果有,那么请让我以正确的方式。
答案 0 :(得分:0)
您的问题是XML本身不允许控制字符,即使编码为字符实体也是如此。 XSLT也无法解析它。
XML 1.1应该能够将字符包含为实体,而不是文本。
有关类似问题,请参阅"invalid XML file?"和"XML Task error message hexadecimal invalid character"。
答案 1 :(得分: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。