Re: xpath

From: MOLINA BRAVO FELIPE DE JESUS <felipe(dot)molina(at)inegi(dot)org(dot)mx>
To: Allan Kamau <kamauallan(at)gmail(dot)com>
Cc: Postgres General Postgres General <pgsql-general(at)postgresql(dot)org>
Subject: Re: xpath
Date: 2010-02-10 10:33:17
Message-ID: 1265797997.4704.1.camel@localhost
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

try to cast to "xml".... xml_payload::xml

El mié, 10-02-2010 a las 12:39 +0300, Allan Kamau escribió:
> As advised by Peter,
> Below is an example (including the ddl and dml statements), it _drops_
> and creates a table called "simple_table" and a sequence called
> "simple_table_seq" both in the "public" schema.
>
> DROP SEQUENCE IF EXISTS simple_table_seq CASCADE;
> CREATE SEQUENCE simple_table_seq;
> DROP TABLE IF EXISTS simple_table CASCADE;
> CREATE TABLE simple_table
> (id INTEGER NOT NULL DEFAULT NEXTVAL('simple_table_seq')
> ,xml_payload TEXT
> ,PRIMARY KEY(id)
> )
> ;
> INSERT INTO simple_table
> (
> id
> ,xml_payload
> )
> SELECT
> nextval('simple_table_seq')AS id
> ,'<doc><name first="David" last="Marston"/>some text</doc>' AS xml_payload
> ;
> SELECT a.id,a.xml_payload FROM simple_table a LIMIT 1;
> SELECT xpath('/doc/name/@first',SELECT a.xml_payload FROM simple_table
> a LIMIT 1);
> SELECT a.id,xpath('/doc/name/@first',a.xml_payload) FROM simple_table a LIMIT 1;
>
> SELECT xpath('/doc/name/@first','<doc><name first="David"
> last="Marston"/>some text</doc>');
>
> DROP SEQUENCE IF EXISTS simple_table_seq CASCADE;
> DROP TABLE IF EXISTS simple_table CASCADE;
>
>
> Allan.
>
> On Wed, Feb 10, 2010 at 11:34 AM, Otandeka Simon Peter
> <sotandeka(at)gmail(dot)com> wrote:
> > Allan,
> >
> > Postgres is very strict on variable types and char conversion. I have a
> > feeling you are trying to access data from a varchar feild using an
> > integer...
> >
> > Can you paste here your schema for that table?
> >
> > P.
> >
> > On Wed, Feb 10, 2010 at 11:06 AM, Allan Kamau <kamauallan(at)gmail(dot)com> wrote:
> >>
> >> Hi,
> >> I am running postgreSQL-8.4.2. I have a table that stores a single xml
> >> document per row in one of it's fields. I would like to use xpath to
> >> retrieve portions of these xml documents.
> >> Is there a way to do so. (I am running postgreSQL 8.4.2 configured
> >> (built) with --with-libxml and --with-libxslt options)
> >>
> >> I have looked at 'xpath' but I am unable to get it work for table fields.
> >>
> >> The command below works.
> >> SELECT xpath('/doc/name/@first','<doc><name first="David"
> >> last="Marston"/>...</doc>');
> >>
> >> The command below seems not to execute successfully
> >> SELECT a.id,xpath('/doc/name/@first',a.xml_payload) FROM
> >> staging.simple_table a WHERE a.id=1;
> >>
> >> HINT: No function matches the given name and argument types. You
> >> might need to add explicit type casts.
> >>
> >>
> >> Allan.
> >>
> >> --
> >> Sent via pgsql-general mailing list (pgsql-general(at)postgresql(dot)org)
> >> To make changes to your subscription:
> >> http://www.postgresql.org/mailpref/pgsql-general
> >
> >
>

In response to

  • Re: xpath at 2010-02-10 09:39:43 from Allan Kamau

Browse pgsql-general by date

  From Date Subject
Next Message Yeb Havinga 2010-02-10 10:39:24 Re: Extending SQL in C using VARIABLE length type
Previous Message Glyn Astill 2010-02-10 10:30:20 Re: when a table was last vacuumed