[英]How to parse an XML in SQL when the structure of the file is changing?
我在列中有以下XML結構(僅是其中的一小部分):
<block name="decision">
<subdictionary name="main">
<v id="Profit">126.45</v>
<v id="Check">-99999.00</v>
<v id="RulePath">PD159</v>
<v id="ID">3256423</v>
<v id="Outcome">RejectFinal</v>
<v id="RP">,PD159</v>
</subdictionary>
</block>
我想做的是解析“結果”的結果,但是對我來說,問題是對於每個不同的xml文件,“結果”的位置都可以更改。 到目前為止,我一直在嘗試的是
SELECT
a.XmlResponse.value('(/decisiondocument/block[3]/subdictionary[1]/v)[@Outcome]', 'nvarchar(20)') 'Outcome'
FROM table
但它給出以下錯誤:
XQuery [Table_Request.XmlResponse.value()]:“ value()”需要一個單例(或空序列),找到類型為“ xdt:untypedAtomic *”的操作數
期望的結果將是這樣的:
Column Outcome
1 RejectFinal
2 Approved
3 RejectFinal
使用此xpath。 它將匹配id
屬性與“結果”匹配的所有v
元素:
SELECT
a.XmlResponse.value('(//v[@id="Outcome"])[1]', 'varchar(100)')
FROM t
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.