Re: Using xpath queries against XML Datatype

From: Tim Landscheidt <tim(at)tim-landscheidt(dot)de>
To: pgsql-novice(at)postgresql(dot)org
Subject: Re: Using xpath queries against XML Datatype
Date: 2010-02-11 16:48:25
Message-ID: m36363d8h2.fsf@passepartout.tim-landscheidt.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-novice

"Balma Robin Gordon" <RGBALMA(at)qinetiq(dot)com> wrote:

> [...]
> How do I do this in PostgreSQL? I'm struggling trying to find any
> documentation/examples. The following does not appear to return
> anything, but I'm not sure if I have the syntax quite right:

> select * from sensorML WHERE (xpath('//sml:System/@gml:id',
> "sensorML_xml",
> ARRAY[ARRAY['sml','http://www.opengis.net/sensorML/1.0.1'],ARRAY['gml','
> http://www.opengis.net/sensorML/1.0.1']]))::text

> = 'CTD1454';

xpath () returns an /array/ of XML values; so you have to
either compare the result to an array or just compare the
first element:

| SELECT * FROM sensorML WHERE ((xpath('//sml:System/@gml:id',
| sensorML_xml,
| ARRAY [ARRAY ['sml', 'http://www.opengis.net/sensorML/1.0.1'],
| ARRAY ['gml', 'http://www.opengis.net/gml']])) [1])::TEXT = 'CTD1454';

Tim

In response to

Browse pgsql-novice by date

  From Date Subject
Next Message u235sentinel 2010-02-11 19:36:26 Re: Postgres Triggers issue
Previous Message Jasen Betts 2010-02-11 11:31:04 Re: Novice PL/pgSQL question and example