簡體   English   中英

文件結構更改時,如何在SQL中解析XML?

[英]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.

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