Re: How to parse XML in Postgres newer versions also - Mailing list pgsql-general

From Pavel Stehule
Subject Re: How to parse XML in Postgres newer versions also
Date
Msg-id CAFj8pRCKnT_hiHeS268e5SNryY0dDUFaBDe9qvMBLT5TBqC2Wg@mail.gmail.com
Whole thread Raw
In response to Re: How to parse XML in Postgres newer versions also  ("Andrus" <kobruleht2@hot.ee>)
List pgsql-general


ne 17. 3. 2019 v 15:11 odesílatel Andrus <kobruleht2@hot.ee> napsal:
Hi
 
>This variant is working
>postgres=#  SELECT
>    (xpath('/ns:Ntry/ns:Amt/text()', x,nsa))[1]::text::numeric AS tasusumma
>    FROM (
>        SELECT unnest(xpath('/ns:Document/ns:BkToCstmrStmt/ns:Stmt/ns:Ntry',
>x,nsa)) as x,
>        nsa
>        FROM t
>    ) Ntry
>;
>But I have not a idea, why old code doesn't work. It is little bit strange so it worked without namespace before Amt tag.
In 9.1.5 it returns nulls
 
In 9.1.5 without namespaces
 
(xpath('Amt/text()', x,nsa))[1]::text::numeric AS tasusumma
 
works.
 
How to make it work in both versions?
Is it possible add some CASE WHEN or IF command  or any other idea ?

Probably this bugfix breaks your code


9.1 is unsupported release, so if you can, just fix it for supported releases.

else where, you need to prepare two different expressions.

Regards

Pavel
 
Andrus.

pgsql-general by date:

Previous
From: Pavel Stehule
Date:
Subject: Re: How to parse XML in Postgres newer versions also
Next
From: Tom Lane
Date:
Subject: Re: How to parse XML in Postgres newer versions also