繁体   English   中英

SQL Server脚本-选择根的xml子节点作为(n)varchar

[英]SQL Server Script - select xml child nodes of root as (n)varchar

我需要创建一个SQL Server脚本,脚本的一部分是选择根节点的直接子节点的名称,并将其转换为(n)varchar 我不需要节点的属性或内容。

这是xml的示例:

declare @XML xml

set @XML = 
'
<config>
  <module1 />    
  <module2 />  
</config>
'

我想要这样的结果:

  • 模块1
  • 模块2

请注意,xml 不是硬编码的 ,可以具有许多不同的子节点。

我已经看过这个(msdn)链接,但是乍一看,使用这些XML方法似乎是不可能的。

非常感谢,Kjell

例如,如果要使用提到的子节点的XML,则可以使用Query方法。

select 
    cast(@XML.query('//GuiConfiguration/Activities') as nvarchar(max)), 
    cast(@XML.query('//GuiConfiguration/Reservations') as nvarchar(max))

编辑:提炼的问题的答案

要获得根的直接子节点的名称,您可以使用它;

select
    cast(t.c.query('local-name(.)') as nvarchar(max))
from
    @xml.nodes('//*[1]/child::node()') as t(c)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM