如果在安装 PostgreSQL 时未安装 xslt_process,请在 ProstgreSQL 8.4 Windows 上安装 xslt_process

发布于 2024-10-12 20:55:16 字数 230 浏览 0 评论 0原文

这可能吗?如果是这样怎么办?

我查看了 Libxslt,它使用的是什么,但它似乎涉及安装一堆二进制文件,并且仍然无法作为 PostgreSQL 函数使用...

更新: 我最终在使用 时遇到了问题xlst_process() 进行大型转换,导致 PostgreSQL 崩溃并最终使用由 plpythonu 函数调用的 FOP。

Is this possible? If so how?

I have looked at Libxslt which is what it uses but it seems to involve installing a bunch of binaries and still will not be available as PostgreSQL function...

UPDATE: I ended up having problems using xlst_process() on large transformations which caused PostgreSQL to crash and ended up using FOP invoked by a plpythonu function.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

标点 2024-10-19 20:55:16

xslt_process 是 contrib 模块 xml2 的一部分
http://www.postgresql.org/docs/current/static/xml2.html

所以安装该模块应该会给你 xstl_process()

xslt_process is part of the contrib module xml2
http://www.postgresql.org/docs/current/static/xml2.html

So installing that module should give you xstl_process()

噩梦成真你也成魔 2024-10-19 20:55:16

xslt_process() 需要安装可用的 Libxml(通过添加 Windows PATH 环境变量)并创建 xslt_process() 函数

解决方案:

  1. 下载并解压 zip:libxslt-1.1.26.win32。从 ftp://ftp.zlatkovic.com/libxml/ 中将
  2. xsltproc.exe 的位置添加到您的 Windows PATH 环境变量中,例如:“C:\libxml\libxslt-1.1.26.win32\bin ”。当您可以从命令行运行它时,您就会知道它正在工作。
  3. xsltproc.exe 也需要 libxml2.dll、libxslt.dll 和 iconv.dll(它们可以使用上面的链接下载,但我发现它们已经在我的 PostgreSQL\8.4\bin 目录中)并且需要添加它们的位置也到 Windows PATH,例如:“C:\PostgreSQL\8.4\bin”
  4. 运行 SQL(我从“PostgreSQL\8.4\share\contrib\pgxml.sql”底部复制):
    创建或替换函数 xslt_process(text,text,text)
    返回文本
    AS '$libdir/pgxml'
    语言 C 严格易失性;
    
    -- 该函数检查参数计数是否正确
    
    创建或替换函数 xslt_process(text,text)
    返回文本
    AS '$libdir/pgxml'
    C 语言严格不可变;
      

Libxml Windows 二进制文件由以下人员维护和提供:http://www.zlatkovic.com/libxml。 en.html

(注意:Windows 用户环境变量不需要重新启动,但仅对用户可用,因此我的建议是将变量添加到系统和用户路径中)

xslt_process() requires Libxml to be installed, available (by adding Windows PATH Environment variables) and the xslt_process() function to be created

Solution:

  1. Download and extract the zip: libxslt-1.1.26.win32.zip from ftp://ftp.zlatkovic.com/libxml/ to place on your dirve
  2. Add the location of xsltproc.exe to your Windows PATH environment varible such as: "C:\libxml\libxslt-1.1.26.win32\bin". You will know this is working when you can run it from the cmd line.
  3. libxml2.dll, libxslt.dll and iconv.dll which are also required by xsltproc.exe (they can downloaded using the above link but I found them to already be in my PostgreSQL\8.4\bin dir) and need to have their location added to the Windows PATH too, such as: "C:\PostgreSQL\8.4\bin"
  4. Run the SQL (which I copied from the bottom of "PostgreSQL\8.4\share\contrib\pgxml.sql"):
    CREATE OR REPLACE FUNCTION xslt_process(text,text,text)
    RETURNS text
    AS '$libdir/pgxml'
    LANGUAGE C STRICT VOLATILE;
    
    -- the function checks for the correct argument count
    
    CREATE OR REPLACE FUNCTION xslt_process(text,text)
    RETURNS text
    AS '$libdir/pgxml'
    LANGUAGE C STRICT IMMUTABLE;
      

The Libxml windows binaries are helpfully maintained and provided by: http://www.zlatkovic.com/libxml.en.html

(NOTE: Windows User enviroment varibles do not require a restart but are only avaliable to the user, so my tip is add the varibles to System and User PATH's)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文