【发布时间】:2020-03-11 13:44:27
【问题描述】:
我正在尝试解析具有以下结构的 XML
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<x12:ASC856_004010 xmlns:x12="http://abcd.com">
<ApplicationArea>
<CreationDateTime>2019-11-01T18:37:39.000Z</CreationDateTime>
<DocType>TST</DocType>
</ApplicationArea>
</x12:ASC856_004010>
当我将 x12:ASC856 作为根节点并附加名称时,我不确定如何解析它。我知道我可以使用 XMLTABLE 指定名称空间来使用 XSD 验证 XML。为了简化解析,我暂时将 XML 更改为如下所示
<LoadValues>
<ApplicationArea>
<CreationDateTime>2019-11-01T18:37:39.000Z</CreationDateTime>
<DocType>TST</DocType>
</ApplicationArea>
</LoadValues>
它会用下面的查询愉快地解析它。
Select T1.* FROM Xmltable('$d/LoadValues' Passing Xmlparse(Document XML_Input) as "d" COLUMNS
DocType Varchar(10) Path '/ApplicationArea/DocType' ) as T1
谁能帮我理解这个 x12:ASC856 表示什么?
当我解析原始 XML 时,出现以下错误
在 SQL 处理期间 XML 解析失败。转换为UTF-8后正在处理的XML值的字节偏移量为6。XML解析器错误描述为:处理指令目标匹配“[xX][mM][lL]”是不允许的。恢复 。 . . : 更正 XML 值。再次尝试请求。
【问题讨论】:
-
x12 是一个命名空间
-
错误消息似乎是在抱怨