Thread: xpath_table

xpath_table

From
Thomas Kellerer
Date:
Hi, 

I am using xpath_table to convert elements from an XML column to "rows". 

Now according to 
http://www.postgresql.org/docs/8.3/static/xml2.html
this function will be removed in a future version. 

That chapter also claims that the new XML syntax covers the functionality of the xml2 module, but I cannot find a way
toreturn the elements of an XML document as rows (as xpath_table does)
 

Suppose I have the following content in my xml column:

<team> <member id="10" name="Arthur Dent"/> <member id="11" name="Ford Prefect"/>
</team>


I am using a statement similar to this:

select member_id, member_name
from xpath_table('id', 'xml_text', 'xmltest', '/team/member/@id|/team/member/@name', 'true')
as t(id integer, member_id varchar, member_name varchar)

to get the following output

member_id    member_name
10    Arthur Dent
11    Ford Prefect

How would I achieve the same without using the deprecated xml2 module?

Thanks in advance
Thomas