如标题所示:是否可以在 XSL 文档中编写 PHP 函数并在之后调用它?
我没有案例,我想这样做。这只是我在学习 XSL 时想到的一件事。
在 XSL 中,您可以编写如下内容:
<xsl:processing-instruction name="php">
...some php...
</xsl>
PHP 代码将在您呈现的页面中运行。是否可以创建例如处理指令中的 PHP 函数并稍后调用它(在同一模板中)?
伪样本:
<xsl:template>
<xsl:processing-instruction name="php">
...some php processing $foo...
</xsl>
<xsl:variable name="foo" select="xpath/node">
<xsl:value-of select="call-php-function-with-$foo"/>
</xsl>
我期待着您的解决方案/方法:)
克里斯
最佳答案
我认为所选答案指向错误的方向。无需使用 FXSL,您可以轻松地将用其他语言编写的扩展添加到 XSLT - 例如 Jython 或带有 Xalan 的 Javascript,带有大多数 Java 处理器的 Java 等。
至于 PHP,如果您在 PHP 脚本中进行 XSLT 处理(而不是从 Ant 或其他东西运行的 Xalan),那么使用 XSLTProcessor::registerPHPFunctions 非常容易,它允许您编写类似
$xsl = <<<EOF
...
<xsl:value-of select="php:function('myFunc', . )"/>
...
EOF;
function myFunc( $node ) {
//etc
当然,只有 PHP 脚本才能正确处理 XSL。
这一切都非常清楚地记录在 http://www.php.net/manual/en/xsltprocessor.registerphpfunctions.php
关于php - 在 XSL 中定义 PHP 函数并调用它。可能的?如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3271558/