XSLT 2.0 PHP支持。什么时候?

时间:2009-11-27 09:33:18

标签: php xslt saxon

在不久的将来,有什么机会可以看到像saxon for php这样的XSLT 2.0处理器?

6 个答案:

答案 0 :(得分:6)

这不完全正确。

如果您在Windows平台上运行PHP,那么AltovaXML XSLT 2.0处理器有一个相对容易配置的扩展...... http://sourceforge.net/projects/xslt2processor/

如果您在Linux上运行PHP,则需要安装PHP / Java Bridge。这涉及运行包含Apache / Tomcat之类的Java servlet,并且非常复杂。还有一些相对复杂的混合java / php代码使这项工作成为必要。如果您有兴趣,我可以发布更多详细信息。

答案 1 :(得分:3)

在不久的将来?无。

PHP5完全依赖于LibXSLT进行XSLT处理(Sablotron已经出局),并且没有计划在此库中支持XSLT 2.0。

答案 2 :(得分:3)

最后,对这个问题有一个肯定的答案

就在今天,Michael Kay博士宣布 Saxon/C

有关详情,请参阅此处: https://stackoverflow.com/a/20275114/36305

答案 3 :(得分:1)

到目前为止,在PHP中没有XSLT2.o支持,使用XSLT2.0的唯一选择是使用基于java的SAXON,因此你将需要像PHP XSLT2.0处理器那样,看到这个链接:http://sourceforge.net/projects/xslt2processor/

  

XML_XSLT2Processor是一个允许您执行XSLT的PHP类   使用SAXON或AltovaXML在PHP中进行2.0转换。

答案 4 :(得分:1)

PHP中有一个开源的XSL 2.0转换器,可以在github

上找到

Saxon / C 1.0.0版支持C / C ++和PHP has been released上的XSLT 2.0 / 3.0。

答案 5 :(得分:0)

PHP使用LibXML2来实现所有XML类。它非常快速和稳定,但今天(2013)只支持XPath1和XSLT1 ...... 或许社区只需要这个更快更简单的解决方案,并且不需要XSLT2的强大功能(参见“option0”)。

option0:尝试使用更好的MVC分离!

...许多模板在MVC上下文中用作 View 不需要XSLT2的权力:请参阅good explanation why。了解一些优秀的PHP项目如何使用XSLT1

option1:尝试非主流实现

那里是showed by @collapsar at this similar question 是一个开源的开发用于扩展经典LibXML2与XSLT2和XPath2的一些功能。 看到 http://www.explain.com.au/libx/

PHP社区还没有动力去完成这种演变......为什么?也许只是害怕失去一些性能和稳定性。 Maybe just a lack of manpower to complete the task,主要在PHP驱动程序中。

option2:使用PHP函数/标题

授权XSLT1或XPath1

参见usual workawound here, by registering PHP functions into XPath1 or XSLT1的示例。我在我的项目中使用此解决方案。