次のヘッダーを持つ 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 が生成されます。
OK、ここに問題があります。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 を使用してコマンド ラインで実行したコードと同じです。
SO、最終的には、MS拡張機能の使用方法を理解するためにPHP.iniに修正/追加する必要があるかどうかを調べようとしていますか、それとも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