Re: Using xpath queries against XML Datatype - Mailing list pgsql-novice

From Tim Landscheidt
Subject Re: Using xpath queries against XML Datatype
Date
Msg-id m36363d8h2.fsf@passepartout.tim-landscheidt.de
Whole thread Raw
In response to Using xpath queries against XML Datatype  ("Balma Robin Gordon" <RGBALMA@qinetiq.com>)
List pgsql-novice
"Balma Robin Gordon" <RGBALMA@qinetiq.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

pgsql-novice by date:

Previous
From: Jasen Betts
Date:
Subject: Re: Novice PL/pgSQL question and example
Next
From: u235sentinel
Date:
Subject: Re: Postgres Triggers issue