我目前有一個 XML,我從 SQL 格式的列中提取,如下所示:
<Datas>
<CHILD value="test" />
</Datas>
我需要一種方法來獲取 CHILD 標簽中的值,但我遇到了一些問題,我認為這是因為它是一個自關閉標簽。如果資料以這種格式格式化,我能夠獲取資料:
<Datas>
<CHILD>test</CHILD>
</Datas>
但是,這種格式不是一種選擇,因為我從中提取的應用程式不會以這種方式存盤它。
我嘗試了以下 SQL:
select cast(xmlField as xml) xmlField into tmp from (
select '<Datas><CHILD value = "test"/></Datas>' xmlField
) tb
SELECT
xmlField.value('(Datas/CHILD)[1]', 'nvarchar(max)') as Data
FROM tmp
drop table tmp
任何幫助是極大的贊賞。謝謝!
uj5u.com熱心網友回復:
問題不在于它是自關閉的,而是您想要訪問一個屬性。對于那些需要使用以 為前綴的屬性名稱@:
SELECT xmlField.value('(Datas/CHILD/@value)[1]', 'nvarchar(max)') AS Data
FROM tmp;
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/316683.html
標籤:sql-server xml xml解析
