我有一个带有以下标题的 XSLT 样式表
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:lxslt="http://xml.apache.org/xslt"
xmlns:redirect="org.apache.xalan.xslt.extensions.Redirect"
extension-element-prefixes="redirect"
xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:my-ext="ext1">
我也有自定义功能:
<msxsl:script language="JavaScript" implements-prefix="my-ext">
var lineCounter = 0;
var totalPages = 0;
var currentPage = 1;
var currentObject = '';
var colSpan = 0;
function getLineCounter()
{
return lineCounter;
}
function updateLineCounter(aValue)
{
lineCounter += aValue;
return '';
}
我的自定义函数在我的 xsl 中使用。当我从命令行使用此 XSL 转换我的 XML 时,使用msxsl.exe它可以完美运行并生成完美的 HTML。
好的,这是我的问题:我正在尝试使用 PHP 在服务器上执行转换并发送回结果。我以前多次使用过这个程序,没有问题;但是,这是我第一次尝试使用 MSXSL 扩展和功能。
示例错误如下所示:
Warning: XSLTProcessor::transformToXml() [xsltprocessor.transformtoxml]: xmlXPathCompOpEval: **function resetAll not found** in D:\Development\AppServ\www\RJFWEB\jqueryFileTree\PHPMain.php on line 49
Warning: XSLTProcessor::transformToXml() [xsltprocessor.transformtoxml]: **Unregistered function** in D:\Development\AppServ\www\RJFWEB\jqueryFileTree\PHPMain.php on line 49
我们可以看到没有找到/理解函数——尽管这是我在命令行中使用msXSL.exe 运行的相同代码。
所以,最终我试图找出是否需要在我的 PHP.ini 中修复/添加一些东西以了解如何使用 MS 扩展或者我是否需要更改 XSL 样式表?
伙计……我希望这个问题有意义!任何帮助表示赞赏。谢谢。
抢
我的 phpInfo 显示
**XSL**
XSL enabled
libxslt Version 1.1.23
libxslt compiled against libxml Version 2.6.32
EXSLT enabled
libexslt Version 0.8.13