Ключевые слова:xml, sql, postgresql, (найти похожие документы)
Date: Wed, 08 May 2002 15:31:47 +0600
From: Pavel Veller <[email protected]>
Newsgroups: fido7.su.dbms.sql
Subject: XML output в PostgreSQL
SN> 2ALL: Кто то знает, какие есть халявные СУБД под FreeBSD с
SN> поддержкой XML output? PostgreSQL умеет?
А что конкретно ты подразумеваешь под XML output? аналог SQLXML - тогда нет.
А с XML PostgreSQL работать умеет. Вместе с дистрибутивом 7.2.1 в
./contrib/xml лежит функция, которую надо отдельно собрать. В поставку она
пока не включается. Позволяет в запросах вычеслять XPath выражения. Hапример
так:
=========Beginning of the citation==============
Given a table docstore:
Attribute | Type | Modifier
----------------+----------+-------------
docid | integer |
document | text |
containing documents such as (these are archaeological site
descriptions, in case anyone is wondering):
<?XML version="1.0"?>
<site provider="Foundations" sitecode="ak97" version="1">
<name>Church Farm, Ashton Keynes</name>
<invtype>watching brief</invtype>
<location scheme="osgb">SU04209424</location>
</site>
one can type:
SELECT docid,
pgxml_xpath(document,'//site/name/text()','','') as sitename,
pgxml_xpath(document,'//site/location/text()','','') as location
FROM docstore;
and get as output:
docid | sitename |
location
---------+---------------------------------------------------------+--------
----
1 | Church Farm, Ashton Keynes | SU04209424
2 | Glebe Farm, Long Itchington | SP41506500
3 | The Bungalow, Thames Lane, Cricklade | SU10229362
(3 rows)
or, to illustrate the use of the extra tags:
SELECT docid as id,
pgxml_xpath(document,'//find/type/text()','set','findtype')
FROM docstore;
id | pgxml_xpath
----+-----------------------------------------------------------------------
--
1 | <set></set>
2 | <set><findtype>Urn</findtype></set>
3 | <set><findtype>Pottery</findtype><findtype>Animal
bone</findtype></set>
(3 rows)
=========The end of the citation================