【问题标题】:XSLT 2.0 PHP support. When?XSLT 2.0 PHP 支持。什么时候?
【发布时间】:2010-12-20 22:19:00
【问题描述】:

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

【问题讨论】:

  • 如果需要,您可以随时将 XSLT 处理转移到支持 XSLT 2.0 的外部处理器……
  • 在我看来“永远不要使用XSLT 1.0 processorsperformance”...对于中间件和数据交换,就像在 Gnome 项目中一样,用户需要性能,并且需要执行单个任务(如旧DTD 验证和简单的 XSLT 过滤器)。对于数据库应用程序(例如,考虑到 PostgreSQL 中缺少 xQuery),PHP 和 public software communities 需要发展并且必须证明开源投资的合理性,与此处显示的现有选项相反。

标签: php xslt saxon


【解决方案1】:

这并不完全正确。

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

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

【讨论】:

  • @JR:对于未来 - 请使用 cmets 来回答这种问题(我知道你还不能评论 )。一旦投出赞成票/反对票并且答案列表被重新排序,像这样的答案就会脱离上下文。
【解决方案2】:

在最近的将来?没有。

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

【讨论】:

    【解决方案3】:

    这个问题终于有了肯定的答案

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

    更多信息请参见:https://stackoverflow.com/a/20275114/36305

    【讨论】:

    • 太棒了,谢谢!但我希望这是在两个多星期前宣布的,因为我正在网上搜索类似的东西。无论哪种方式都需要重构和升级到 xstl 2.0 :)
    • @RezaSanaie,是的,XSLT 1.0 已经 14 岁了——在互联网时代很古老。
    【解决方案4】:

    到目前为止,PHP 中还没有XSLT2.o 支持,使用 XSLT2.0 的唯一选择是使用基于 Java 的 SAXON,因此您必须使用 PHP XSLT2.0 之类的处理器,请参阅此链接:@ 987654321@

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

    【讨论】:

    【解决方案5】:

    在 PHP 中有一个开源 XSL 2.0 转译器,可以在 github 上找到

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

    【讨论】:

      【解决方案6】:

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

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

      ...许多模板,在MVC 上下文中用作视图不需要XSLT2 的力量:参见good explanation why。看看一些优秀的 PHP 项目如何使用 XSLT1

      选项1:尝试非主流实现

      作为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 的示例。我在我的项目中使用这个解决方案。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-30
        • 2017-04-11
        • 2011-06-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多