将 XSLT 2.0 与 PHP 结合使用的最佳方式是啥?
Posted
技术标签:
【中文标题】将 XSLT 2.0 与 PHP 结合使用的最佳方式是啥?【英文标题】:What is the best way to use XSLT 2.0 with PHP?将 XSLT 2.0 与 PHP 结合使用的最佳方式是什么? 【发布时间】:2013-12-20 07:53:55 【问题描述】:这是我在网站上的第二个问题,和往常一样,我花了几个小时阅读了很多相关问题,其中两个最相关的是:
Will XPath 2.0 and/or XSLT 2.0 be implemented in php? 其中解释了使用 PHP/Java Bridge 和 Saxon 的解决方案。和
Upgrade PHP XSLT processor to XSLT 2.0 其中解释了使用 XML_XSLT2Processor 的解决方案,使用 PEAR 和 PHP 安装它。我主要关注第二个选项,因为 php 已经有一个 XSLTProcessor 库,但遗憾的是它只支持 XSLT 1.0,我正在寻找 2.0 支持,所以它似乎是正确的选择,但在安装 PEAR 并尝试安装之后XML_XSLT2Processor,并阅读了许多文章(1、2、3,我目前对这个主题开放的文章)和 AltovaXML 已经商业化,而且 PEAR 有这么多错误,我决定使用第一个选项。
但我并不真正了解 Java,但我会尝试一下,但在开始之前,我决定先问一下(加上帖子有点过时了)。
没有其他更好的方法来使用 PHP 管理 XSLT 2.0 吗?
【问题讨论】:
如果您正在考虑将 XSLT 与另一种语言配对,那么要问的部分问题是,当 XSLT1.0 对其他语言有更多支持时,为什么您还需要 XSLT2.0? 实际上 PHP 是最后一个不支持 XSLT 2.0 的主要平台(直到上周,见下文...) 我需要 2.0,因为我们得到了一个 xslt 2.0 文件,我们应该在墨西哥的 IRS 使用它,我不知道他们为什么选择使用 2.0 版本,因为它不是广泛使用,我认为它不需要是 2.0,但他们就是这样做的。当我使用 php 转换它时,它实际上确实转换了它,但是它为每个元素抛出了错误的版本错误。 任何曾经使用过 XSLT 2.0 的人将永远不会回到 1.0,除非提供非常大的贿赂。 【参考方案1】:这个问题来得及时,因为上周我们推出了 Saxon/C,它是 Saxon 的一个移植版本,它被编译为英特尔机器代码,带有 C、C++ 和 PHP 的 API。现在还处于早期阶段(Alpha 0.1 版本),但如果您不介意处于最前沿,您可以尝试一下。当然,我们欢迎您的反馈。详情http://www.saxonica.com/saxon-c/index.xml
【讨论】:
你好迈克尔,我已经检查了该站点并下载了 Windows 的两个安装程序,32 位和 64 位版本,64 位版本说它是评估,无论如何,我一直在试图弄清楚如何能够使用 php 的 API 没有成功。有一个为 Linux 安装 php 扩展的小指南,并尝试将其调整为 Windows,但我无法使其工作。我已经向 saxon-help@lists.sourceforge.net 发送了一封包含更详细信息的邮件,但由于我不是会员而被过滤掉了。任何帮助将不胜感激! 虽然我在 *** 上回答了许多撒克逊人的问题,但这是我必须参考一位同事的问题,这意味着我必须要求您使用首选的支持途径。请在 Sourceforge 上注册 saxon-help 列表,或在 saxonica.plan.io 上注册论坛。 谢谢 Michael,我确实在 sourceforge 上注册了,我已经从 O'Neil Delpratt 那里得到了回答我的问题的答案,我很乐意在运行后立即提供反馈,谢谢很多!以上是关于将 XSLT 2.0 与 PHP 结合使用的最佳方式是啥?的主要内容,如果未能解决你的问题,请参考以下文章
XSLT 使用 xslt 2.0 或更高版本将纯文本文件处理为 XML