XPath 2.0和/或XSLT 2.0是否会在PHP中实现?

25

这个问题在收到答案之前被提问者删除了。因为我认为这个问题合理且有意义,可以服务于某些目的,所以我将再次提出并提供我已经对原问题撰写的答案。

未来是否会在PHP中实现XPath 2.0和/或XSLT 2.0?是否有相关计划?


可能会有帮助:http://phpmyxml.sourceforge.net/ - Haim Evgi
phpmyxml不支持XSLT / XPath标准的2.0版本。 - Abel
可能是将PHP XSLT处理器升级到XSLT 2.0的重复问题。 - tripleee
@tripleee,这个问题是在几个月之前提出的,所以我认为情况恰恰相反。但是答案大不相同,所提到的答案增加了价值,因此实际上并没有真正的重复内容;)。 - Abel
2个回答

16
请参见这份XSLT引擎列表,它来自于关于XSLT 2.0开发的一个线程,该线程发布在XSL邮件列表上。

PHP的一个解决方案是使用PHP/Java桥接器Saxon,并遵循教程

XSLT 2.0(和XPath 2.0)的当前开发状态意味着目前没有计划,因此PHP也没有计划。要使用XPath 2.0,您需要包含Saxon 9.x并与Java库互操作。

即使今天有人为XPath 2.0和XSLT 2.0编写了一个开源本地库,也需要时间才能适用于生产。


1
@Abel:订阅XSL列表值得吗?我担心我的GMail帐户会被垃圾邮件淹没,一旦我订阅了,我就再也不会快乐了... - Tomalak
1
我个人从未通过XSL-list收到垃圾邮件,它们有非常强的过滤器和人工监控。当然,您的电子邮件地址将是公开可见的,这可能会导致(更多)未经请求的邮件。但是,现在强制使用良好的垃圾邮件过滤器,我每周只收到一封垃圾邮件。我通常建议:为您所有的列表订阅或其他公共资料使用一个特殊地址。 - Abel
1
PS:“值得吗”:绝对值得!众所周知的XSLT专家包括XSLT 2.0 W3C首席编辑Michael Kay,以及像Dimitre Novatchev、Andrew Welch、G. Ken Holman(也是XSL-FO)和David Carlisle等其他活跃的专家都会提供可靠的建议。在向列表提问之前,请确保您已经阅读了常见问题解答,并且您将受到热烈欢迎。我会在那里见到你吗? - Abel
我更喜欢回答问题而不是提问,但我确实在考虑。Stack Overflow 在 XSLT 方面有点薄弱,每天只有几个问题。 - Tomalak
也许这会对某些人有所帮助:https://dev59.com/S3nZa4cB1Zd3GeqPvNmz#20371639 - Mykola Vasilaki
1
@nicholas,这基本上就是Dimitri在下面的答案中所说的,两者都涉及Saxon-C。不过也很好将那个更新的问题链接一下。 - Abel

3

Saxon C是一个XSLT 2.0的处理器,专门为PHP开发而设计。现在可以从PHP中使用。

更具体地说,以下是如何构建PHP扩展的文档信息:

PHP扩展

按照以下步骤构建PHP扩展。

(或者,您可以使用Petr Zak提供的安装脚本install.sh - 该脚本编写于64位机器上,但也适用于32位机器。)

执行以下命令:

• phpize

• ./configure --enable-saxon

• make

• sudo make install

更新php.ini文件(如果使用Ubuntu,则通常位于'/etc/php5/apache2/'位置),将PHP扩展插入到动态扩展部分:extension=saxon.so,然后运行以下命令:

• sudo service apache2 restart


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接