以下代码是支持调用一些旧的 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;
?>