У меня нет опыта работы с PostreSQL и очень мало опыта с XPATH, но я смог получить кое-что для вас:
with x as (select
'<TABLE>
<TBODY>
<TR>
<TH class="RowTitle">Identificacion</TH>
<TH class="colRol">Rol</TH>
</TR>
<TR class="tData">
<TD class="RowTitle">
<A href="#">4444</A>
</TD>
<TD class="colRow" val="INVARGEXT">Investigador</TD>
</TR>
<TR class="tData">
<TD class="RowTitle">
<A href="#">55555</A>
</TD>
<TD class="colRow" val="BECARIO">Becario</TD>
</TR>
</TBODY>
</TABLE>'::xml as t
),
y as (select unnest(xpath('//TR[@class="tData"]', t)) td from x)
select -- y.td, -- just to debug
xpath('//TD[@class="RowTitle"]/A/text()', y.td),
xpath('//TD/text()', y.td)
from y;
Это выводит:
xpath xpath
1 4444 Investigador
2 55555 Becario
Я надеюсь, что это можетбыть полезным.
Дополнительная информация здесь и здесь .