簡體   English   中英

使用SQL從XML字段中提取具有異常XML的值

[英]Extracting values from XML field with unusual XML using SQL

希望有人可以幫助-

XML格式使用非常簡單的語法組合在一起,但是由於某種原因,我正在努力使用標准的“值”類型查詢來解析它。 我對SQL有經驗,但是對XML的經驗有限,經過2個小時的挫折和大量的Google搜索,我想我會要求自己的理智!

數據存儲為文本字符串,因此在解析之前將其轉換為XML:

 <!-- Data config file --> 
 <Config>   
  <!-- keys-->
  <foo value="bar"/>
  <foo1 value="bar1"/>
  <big_foo value="bar/bar.com"/>
  <other value="f00"/>

我正在使用的查詢是:

SELECT  
 col.value('foo1[0]', 'nvarchar(max)') as VALUE
 from
(
select  
    CAST((SELECT TOP 1 xml_text FROM dbo.xml_lookup)AS XML)
 as Col)x

但這將返回NULL而不是預期的“ bar1”。

知道我哪里出錯了嗎?

正確的XPath將是

col.value('(Config/foo1)[1]/@value', 'nvarchar(max)')

sql小提琴演示

暫無
暫無

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

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