Thread: example for xmltable with XMLNAMESPACES

example for xmltable with XMLNAMESPACES

From
Arjen Nienhuis
Date:
It wasn't completely clear for me how to use namespaces in xmltable().
Maybe add this to the documentation. It shows the default namespace
and quoting the namespace name.

WITH xmldata(data) AS (VALUES ('
<example xmlns="http://example.com/myns" xmlns:B="http://example.com/b"><item foo="1" B:bar="2"/><item foo="3"
B:bar="4"/><itemfoo="4" B:bar="5"/>
 
</example>'::xml)
)
SELECT xmltable.* FROM XMLTABLE(XMLNAMESPACES('http://example.com/myns' AS x,
'http://example.com/b'AS "B"),            '/x:example/x:item'               PASSING (SELECT data FROM xmldata)
    COLUMNS foo int PATH '@foo',                 bar int PATH '@B:bar');foo | bar
 
-----+-----  1 |   2  3 |   4  4 |   5
(3 rows)