如何使用SQL从XML数据类型获取默认的xml命名空间?

时间:2011-03-16 23:33:36

标签: xml tsql xpath

考虑以下TSQL:

declare @xml xml
select  @xml = '<test xmlns="http://this-is-the-default-namespace-uri">some data</test>'

select  x.value('namespace-uri(.)', 'varchar(100)')
from    @xml.nodes('.') x(x)

我想从XML中获取的是默认命名空间的URI。这是根元素上的xmlns属性的值。上面的select语句返回一个空字符串。如何获得xmlns的实际值?

1 个答案:

答案 0 :(得分:4)

我对fn:namespace-uri()的工作方式不太熟悉,但这似乎回归了你想要的......

select  x.value('namespace-uri(.)', 'varchar(100)')
from    @xml.nodes('*[1]') x(x);