3

我需要用我自己的标签和函数在 PHP 中扩展 XSLT 处理器。我找到了一些 API,但这些 API 仍然不是我需要的。

1) http://php.net/manual/ru/book.xsl.php - 非常简单的 API,但我只能扩展函数(registerPHPFunctions),不能扩展标签。

2) http://www.php.net/manual/en/ref.xslt.php - 又好又简单,我可以扩展我需要的任何东西(xslt_set_sax_handlers),但是,我们开始了 - 另一个问题。简介 (http://www.php.net/manual/en/intro.xslt.php) 说:“此扩展已移至 » PECL 存储库,自 PHP 5.0.0 起不再与 PHP 捆绑。” . 好的,我正在导航到 pecl.php.net -> Search Packages -> XSLT -> No results found -> o_O

所以,看起来好的 API 已被弃用,而糟糕的 API 并不能满足我的需求。大家有什么可以推荐的吗?我需要一个 PHP XSLT 处理器,我可以在其中扩展或覆盖所有可以扩展或覆盖的东西,就像上面的“2)”一样。谢谢!

4

1 回答 1

0

PHPlibxslt用作其默认处理器和libexslt扩展处理器。以下是 API 文档:

此外,libxslt已经支持eval 扩展,它可以满足您的目的。

还有一些内置的宏可以xsl:processing-instruction匹配 PHP 的简写分隔符:

registerPHPFunctions方法。

转换可以将 XPath 表达式作为参数传递给自定义命名空间中的函数:

<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:js="urn:livescript"
  extension-element-prefixes="js"
>

  <xsl:variable name="source" select="//"/>

  <xsl:template match="json">
    <xsl:value-of select="livescript:JSON($source)"/>
  </xsl:template>
</xsl:stylesheet>

该函数链接到一个外部转换,该转换计算 XPath 结果并使用回调返回结果。

参考

于 2014-04-17T15:30:21.943 回答