簡體   English   中英

在t-sql中使用.query()來獲取內部文本

[英]Using .query() in t-sql to get only inner text

如何使用t-sql.query()語法來選擇特定節點,但只獲取內部文本而不是包含在節點標簽中的內部文本?

就像我這樣做的時候:

SELECT TOP 1 [XMLContent].query('/Event/Username'), * from Events

我明白了:

<Username>BURGUNDY</Username>

但我想要的只是BURGUNDY 很明顯我可以做一些子字符串來獲得它,但我希望有一個快速簡便的方法來做到這一點。

您可以使用xquery data()函數:

[XMLContent].query('data(/Event/Username)')

但是,這將返回XML作為類型(即使沒有標記)。

您也可以使用.value而不是.query:

[XMLContent].value('/Event[1]/Username[1]', 'NVARCHAR(MAX)')
declare @xml xml;
set @xml = '<Event><Username>BURGUNDY</Username></Event>'

Select @xml.value('/Event[1]/Username[1]', 'varchar(30)');

使用.value()代替.query()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM