终于,这个问题有了积极的答案。
就在今天,Michael Kay博士宣布了Saxon/C。
目前PHP还不支持XSLT2.0
,使用SAXON
是使用XSLT2.0的唯一选择,因为它是基于Java的,所以您需要像PHP XSLT2.0处理器这样的东西,请参见此链接:http://sourceforge.net/projects/xslt2processor/
XML_XSLT2Processor
是一个PHP类,允许您通过使用SAXON或AltovaXML在PHP中执行XSLT 2.0转换。
PHP使用LibXML2来实现所有的XML类。它非常快速和稳定,但是今天(2013年)只支持XPath1和XSLT1... 也许社区只需要这种更快、更简单的解决方案,而不需要XSLT2的强大功能(参见“option0”)。
...许多模板作为MVC上下文中的View,不需要XSLT2的强大功能:请参见good explanation why。看看一些优秀的PHP项目如何使用XSLT1。
正如@collapsar在类似问题中所展示的那样,有一个开源项目开发了一些XSLT2和XPath2的强大功能来扩展经典的LibXML2。请参见http://www.explain.com.au/libx/
PHP社区尚未积极推动这种进化...为什么?也许只是害怕失去一些性能和稳定性。或许只是缺乏完成任务的人力资源, 主要是在PHP驱动程序中。
请参见此处的常规解决方法,通过将PHP函数注册到XPath1或XSLT1中的示例。我在我的项目中使用了这个解决方案。