Tôi tình cờ gặp vấn đề tương tự và tôi vui lòng thêm một câu trả lời khác cho câu hỏi:
Với PostgreSQL 9.2, tài liệu đột nhiên có thêm một câu nói về hàm xpath:
Chỉ cần những gì tôi cần! Vì vậy, liên quan đến câu hỏi, một câu trả lời hợp lệ khác là:Nâng cấp lên PostgreSQL 9.2. Tại thời điểm viết bài này, phiên bản 9.2 chỉ là bản beta, nhưng tôi có thể xác nhận rằng phiên bản này hoạt động:
Chi tiết phiên bản
postgres=# select version();
version
------------------------------------------------------------------------------------------------------------------
PostgreSQL 9.2beta1 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-52), 64-bit
(1 row)
Trình bày giải pháp
(Trình diễn này được thực hiện với Postgre 9.5, vì ban đầu tôi đã dán mã sai)
postgres=# SELECT xpath('sum(/my:a/value[.>15])', '<my:a xmlns:my="http://example.com">
postgres'# <value>20</value>
postgres'# <value>10</value>
postgres'# <value>30</value>
postgres'# </my:a>',
postgres(# ARRAY[ARRAY['my', 'http://example.com']]);
xpath
-------
{50}
(1 row)