以下程式碼是一個封裝程式,可支援呼叫某些舊的 xslt_* 函數
<?
if (PHP_VERSION >= 5) {
// 模擬舊的 xslt 函式庫函數
function xslt_create() {
return new XsltProcessor();
}
function xslt_process($xsltproc,
$xml_arg,
$xsl_arg,
$xslcontainer = null,
$args = null,
$params = null) {
// 首先準備參數
$xml_arg = str_replace('arg:', '', $xml_arg);
$xsl_arg = str_replace('arg:', '', $xsl_arg);
// 建立 DomDocument 類別的執行個體
$xml = new DomDocument;
$xsl = new DomDocument;
// 載入 XML 文件和 XSL 範本
$xml->loadXML($args[$xml_arg]);
$xsl->loadXML($args[$xsl_arg]);
// 載入 XSL 範本
$xsltproc->importStyleSheet($xsl);
// 如果已定義,則設定參數
if ($params) {
foreach ($params as $param => $value) {
$xsltproc->setParameter("", $param, $value);
}
}
// 開始轉換
$processed = $xsltproc->transformToXML($xml);
// 如果指定,則將結果放入檔案
if ($xslcontainer) {
return @file_put_contents($xslcontainer, $processed);
} else {
return $processed;
}
}
function xslt_free($xsltproc) {
unset($xsltproc);
}
}
$arguments = array(
'/_xml' => file_get_contents("newxslt.xml"),
'/_xsl' => file_get_contents("newxslt.xslt")
);
$xsltproc = xslt_create();
$html = xslt_process(
$xsltproc,
'arg:/_xml',
'arg:/_xsl',
null,
$arguments
);
xslt_free($xsltproc);
print $html;
?>