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">
<chassisjunos: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