plxslt
plxslt
plxslt : XSLT procedural language for PostgreSQL
Overview
| ID | Extension | Package | Version | Category | License | Language |
|---|---|---|---|---|---|---|
| 3110 | plxslt
|
plxslt
|
0.20140221 |
LANG
|
PostgreSQL
|
C
|
| Attribute | Has Binary | Has Library | Need Load | Has DDL | Relocatable | Trusted |
|---|---|---|---|---|---|---|
--s-d-r
|
No
|
Yes
|
No
|
Yes
|
yes
|
no
|
| Relationships | |
|---|---|
| See Also | plpgsql
pgml
plpython3u
pg_tle
plv8
pljava
plperl
pllua
|
Packages
| Type | Repo | Version | PG Major Compatibility | Package Pattern | Dependencies |
|---|---|---|---|---|---|
| EXT | PGDG
|
0.20140221 |
18
17
16
15
14
|
plxslt |
- |
| RPM | PGDG
|
0.20140221 |
18
17
16
15
14
|
plxslt_$v |
- |
| DEB | PIGSTY
|
0.20140221 |
18
17
16
15
14
|
postgresql-$v-plxslt |
- |
| Linux / PG | PG18 | PG17 | PG16 | PG15 | PG14 |
|---|---|---|---|---|---|
el8.x86_64
|
PGDG 0.20140221
|
PGDG 0.20140221
|
PGDG 0.20140221
|
PGDG 0.20140221
|
PGDG 0.20140221
|
el8.aarch64
|
PGDG 0.20140221
|
PGDG 0.20140221
|
PGDG 0.20140221
|
PGDG 0.20140221
|
PGDG 0.20140221
|
el9.x86_64
|
PGDG 0.20140221
|
PGDG 0.20140221
|
PGDG 0.20140221
|
PGDG 0.20140221
|
PGDG 0.20140221
|
el9.aarch64
|
PGDG 0.20140221
|
PGDG 0.20140221
|
PGDG 0.20140221
|
PGDG 0.20140221
|
PGDG 0.20140221
|
el10.x86_64
|
PGDG 0.20140221
|
PGDG 0.20140221
|
PGDG 0.20140221
|
PGDG 0.20140221
|
PGDG 0.20140221
|
el10.aarch64
|
PGDG 0.20140221
|
PGDG 0.20140221
|
PGDG 0.20140221
|
PGDG 0.20140221
|
PGDG 0.20140221
|
d12.x86_64
|
PIGSTY 0.20140221
|
PIGSTY 0.20140221
|
PIGSTY 0.20140221
|
PIGSTY 0.20140221
|
PIGSTY 0.20140221
|
d12.aarch64
|
PIGSTY 0.20140221
|
PIGSTY 0.20140221
|
PIGSTY 0.20140221
|
PIGSTY 0.20140221
|
PIGSTY 0.20140221
|
d13.x86_64
|
PIGSTY 0.20140221
|
PIGSTY 0.20140221
|
PIGSTY 0.20140221
|
PIGSTY 0.20140221
|
PIGSTY 0.20140221
|
d13.aarch64
|
PIGSTY 0.20140221
|
PIGSTY 0.20140221
|
PIGSTY 0.20140221
|
PIGSTY 0.20140221
|
PIGSTY 0.20140221
|
u22.x86_64
|
PIGSTY 0.20140221
|
PIGSTY 0.20140221
|
PIGSTY 0.20140221
|
PIGSTY 0.20140221
|
PIGSTY 0.20140221
|
u22.aarch64
|
PIGSTY 0.20140221
|
PIGSTY 0.20140221
|
PIGSTY 0.20140221
|
PIGSTY 0.20140221
|
PIGSTY 0.20140221
|
u24.x86_64
|
PIGSTY 0.20140221
|
PIGSTY 0.20140221
|
PIGSTY 0.20140221
|
PIGSTY 0.20140221
|
PIGSTY 0.20140221
|
u24.aarch64
|
PIGSTY 0.20140221
|
PIGSTY 0.20140221
|
PIGSTY 0.20140221
|
PIGSTY 0.20140221
|
PIGSTY 0.20140221
|
Source
pig build pkg plxslt; # build debInstall
Make sure PGDG repo available:
pig repo add pgdg -u # add pgdg repo and update cacheInstall this extension with pig:
pig install plxslt; # install via package name, for the active PG version
pig install plxslt -v 18; # install for PG 18
pig install plxslt -v 17; # install for PG 17
pig install plxslt -v 16; # install for PG 16
pig install plxslt -v 15; # install for PG 15
pig install plxslt -v 14; # install for PG 14Create this extension with:
CREATE EXTENSION plxslt;Usage
plxslt enables writing PostgreSQL functions as XSLT stylesheets for transforming XML data.
CREATE EXTENSION plxslt;Create XSLT Functions
The function body is an XSLT stylesheet. The first parameter must be of type xml and receives the input document:
CREATE FUNCTION extract_title(xml) RETURNS xml AS $$
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:value-of select="//title"/>
</xsl:template>
</xsl:stylesheet>
$$ LANGUAGE xslt;
SELECT extract_title('<doc><title>Hello World</title></doc>'::xml);Return Types
The return type must match the stylesheet’s output method:
| Output Method | Return Type |
|---|---|
xml |
xml |
text |
text or varchar |
html |
text or varchar |
Passing Parameters
Additional function parameters beyond the first xml parameter are passed as XSL stylesheet parameters:
CREATE FUNCTION transform_with_param(xml, text) RETURNS xml AS $$
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:param name="arg2"/>
<xsl:template match="/">
<result>
<xsl:value-of select="$arg2"/>
</result>
</xsl:template>
</xsl:stylesheet>
$$ LANGUAGE xslt;Limitations
- First parameter must be
xmltype - Triggers are not supported
- Only XSLT 1.0 transformations are supported (via libxslt)
Last updated on