【发布时间】:2015-05-15 17:07:00
【问题描述】:
我成功地解析了一些 XML 文件,并处理了所涉及的命名空间。 但是,我现在已经从不同的来源获得了一些 XML,但事情并不一样!
这是我的 XML(简体)
<ConnectionExport xmlns="http://www.sap.com/IS/Connection" version="14.2.4.732">
<Connection>
<technical_name>mytechname</technical_name>
</Connection>
<Connection>
<technical_name>mytechname</technical_name>
</Connection>
</ConnectionExport>
和我要解析的代码
SELECT
T.c.query('.')
,T.c.value('(@version)','nvarchar(250)')as [version]
,CN.c.query('.') as [connection]
FROM
@xml.nodes('
declare namespace cnn="http://www.sap.com/IS/Connection";
(cnn:ConnectionExport)
') T(c)
outer apply
T.c.nodes('
Connection
') as CN(c)
前 2 列按预期返回所有内容、完整的 XML 文本和 [version] 值。 但是,CN.c.query('.') 只是 NULL。
我知道这与命名空间有关,因为它工作得很好,只是我从 XML 文件和 SQL 中删除了所有命名空间问题。
用 Google 搜索了很多......但仍然难以理解错误的概念。
【问题讨论】:
标签: xml tsql xml-namespaces