I am trying to use xpath to extract some information from a XML document.
(if it matters, It's the router config for a Juniper router)

I believe I am having problems with the namespace.
I am trying to extract the serial-number, but I am not getting anything.

Here is the script I have been testing with:


BEGIN;

CREATE TABLE "xml_test" (
        data_xml        xml
);


INSERT INTO xml_test (data_xml) VALUES ('
 <chassis-inventory xmlns="http://xml.juniper.net/junos/9.6R4/junos-chassis";>
   <chassis junos:style="inventory">
     <name>Chassis</name>
     <serial-number>JN1111111111</serial-number>
     <description>MX960</description>
   </chassis>
 </chassis-inventory>');


select data_xml from xml_test where data_xml is document;

select (xpath('/chassis-inventory/chassis/serial-number/text()',
        data_xml,
        ARRAY[ARRAY['junos',
'http://xml.juniper.net/junos/9.6R4/junos-chassis']]
       )) from xml_test;

ROLLBACK;


This gives me the following:


BEGIN
CREATE TABLE
INSERT 0 1
                                   data_xml
-------------------------------------------------------------------------------
  <chassis-inventory xmlns="http://xml.juniper.net/junos/9.6R4/junos-chassis";>+
    <chassis junos:style="inventory">                                         +
      <name>Chassis</name>                                                    +
      <serial-number>JN1111111111</serial-number>                             +
      <description>MX960</description>                                        +
    </chassis>                                                                +
  </chassis-inventory>
(1 row)

 xpath
-------
 {}
(1 row)

ROLLBACK


Can anyone suggest how I would go about getting the serial-number with xpath?

Thanks

-- 
Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-sql

Reply via email to