XPATHを使用したPostgreSQLでのXML文書の解析?
として所望の出力を得るためにXPathを使用してPostgreSQLの次のXML文書を解析する方法--Corrected price
素子に要求される出力
promotion-id price new-promotion null new-promotion null new-promotion 300
があります。現在、以下に示すクエリを実行すると、出力として300
が取得されます。私の問題は、クエリは、<price xsi:nil="true"/>
構造を持つ価格要素を無視しています。
<price xsi:nil="true"/>
型構造の価格要素の結果としてnull
を返す方法はありますか?上記の問題のための任意の提案が高く評価されて
WITH x AS (SELECT
'<promotions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<promotion promotion-id="old-promotion">
<enabled-flag>true</enabled-flag>
<searchable-flag>false</searchable-flag>
</promotion>
<promotion promotion-id="new-promotion">
<enabled-flag>false</enabled-flag>
<searchable-flag>false</searchable-flag>
<exclusivity>no</exclusivity>
<price xsi:nil="true"/>
<price xsi:nil="true"/>
<price>300</price>
</promotion>
</promotions>'::xml AS t
)
SELECT unnest(xpath('//price/text()', node))::text
FROM (SELECT unnest(xpath('/promotions/promotion', t)) AS node FROM x) sub
:
私のコードは次のようなものです。
メッセージありがとうございました。提案された解決策は機能しましたが、望ましい出力にはpormotion-id要素への参照が必要です。更新されたメッセージをご覧ください。あなたの助けに感謝。 –