簡體   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