PostgreSQL XML und XSLT - XPath Funktion
In vielen Projekten wird heute XML verwendet. Doch wenn man diese Technologie in Kombination eines Datenbank Managementsystems anwenden möchte, so greift man häufig auf kommerzielle Systeme, wie Oracle oder MS SQL Server zurück. Doch das muß nicht sein!
Das Produkt
Also kostenlose Alternative bietet sich hier PostgreSQL an. PostgreSQL ist mit einer Erweiterung in der Lage XML Dokumente zu speichern und auch zu pflegen. Das bedeutet, das Sie sehr einfach Daten innerhalb eines XML Dokumentes verändern, aber auch danach suchen können.
Das Projekt heißt xpsql.
Das Projekt stellt folgende Funktionen in PostgreSQL zur Verfügung
1. DOM Funktionen zum Erstellen und Durchsuchen von XML Dokumenten
2. XPath Engine um Informationen aus einem XML Document heraus zu filtern
3. Update Funktionen zum Modifizieren von Dokumenten
Beispiel
CREATE TABLE t_articles (
article_id int4 NOT NULL,
article_title varchar(255) NOT NULL,
article_xml text
);
UPDATE t_articles SET article_xml = '
<beatles id = "b1">
<beatle instrument = "guitar" alive = "no">john lennon</beatle>
<beatle instrument = "guitar" alive = "no">george harrison</beatle>
</beatles>'
WHERE article_id = 1;
UPDATE t_articles SET article_xml = '
<beatles id = "b2">
<beatle instrument = "bass" alive = "yes">paul mccartney</beatle>
<beatle instrument = "drums" alive = "yes">ringo starr</beatle>
</beatles>'
WHERE article_id = 2;
SELECT
article_id, xpath_string(article_xml,'/beatles/@id') AS beatle_id
FROM
t_articles
WHERE
xpath_bool(article_xml,'/beatles/beatle[@alive="yes"]');
/*
-- returns:
--
-- article_id | beatle_id
-- ------------ -----------
-- 2 | b2
*/