xquery返回元素名称

时间:2016-02-29 22:31:08

标签: sql-server xml xquery

DECLARE @XML XML
SET @xml = '
<root>
    <a>
        <DATE_OF_BIRTH> 19871224</DATE_OF_BIRTH> 
        <DRIVER> MIKE </DRIVER> 
    </a>
    <a>
        <DATE_OF_BIRTH> 19881124</DATE_OF_BIRTH> 
        <DRIVER> TOM </DRIVER> 
    </a>
    <a>
        <DATE_OF_BIRTH> 19770601</DATE_OF_BIRTH> 
        <DRIVER> DAVID </DRIVER> 
    </a>
</root>'

select x.value('.','varchar(100)')
from @xml.nodes('//a') as T(X)

我想使用xquery返回元素名称

结果如下

DATE_OF_BIRTH

DRIVER

我怎样才能实现这一目标?

非常感谢你。

2 个答案:

答案 0 :(得分:3)

如果要包含命名空间,请使用local-name()(或name(),所以它应该是

//a/*/local-name()

答案 1 :(得分:3)

如果您尝试以下操作:

UIViewController

它将返回:

select X.query('local-name(.)')
from @xml.nodes('//a/*') as T(X)