次の表を作成しました。
create table temp.promotions_xml(id serial promotion_xml xml);
次のデータを temp.promotions に挿入しました。
<promotions xmlns="http://www.demandware.com/xml/impex/promotion/2008-01-31">
<campaign campaign-id="2013-1st-semester-jet-giveaways">
<description>2013 1st Semester Jet Giveaways</description>
<enabled-flag>true</enabled-flag>
<start-date>2013-01-01T05:00:00.000Z</start-date>
<end-date>2013-07-01T04:00:00.000Z</end-date>
<customer-groups>
<customer-group group-id="Everyone"/>
</customer-groups>
</campaign>
</promotions>
データは表にあります。
私はそれを取得する方法を理解できません。おそらく、これから構築するリレーショナル モデルにデータを入力できるようにしたいので、すべてのタグを削除したいと考えています。
以下は、私が試したもののうまくいかなかったいくつかのクエリです。私は正しい構文で踊っているだけだと確信しています。これらのクエリは、空のセットの行を返します。
FWIW、Postgres 9.0.4 を使用しています。
ありがとう、 --sw
select xpath('/promotions/campaign/description/text()',promotion_xml) textcol from temp.promotions_xml
select xpath('./promotions/campaign/description/text()',promotion_xml) textcol from temp.promotions_xml
select xpath('promotions/campaign/description/text()',promotion_xml) textcol from temp.promotions_xml
select xpath('///description/text()',promotion_xml) textcol from temp.promotions_xml
select xpath('//description/text()',promotion_xml) textcol from temp.promotions_xml
select xpath('.//description/text()',promotion_xml) textcol from temp.promotions_xml
select xpath('./campaign/description/text()',promotion_xml) textcol from temp.promotions_xml
select xpath('//campaign/description/text()',promotion_xml) textcol from temp.promotions_xml