[英]Pass URL as a parameter to XSL
我想將當前頁面的URL作為屬性傳遞給XSL模板。 據我了解,它應該作為參數傳遞,然后用作屬性。
我使用PHP加載XML和XSL文件:
<?php
$xml = new DOMDocument;
$xml->load('main.xml');
$xsl = new DOMDocument;
$xsl->load('blocks/common.xsl');
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl);
echo $proc->transformToXML($xml);
?>
例如,應如何更改此代碼以將URL作為名為“ current-url”的參數傳遞?
我在這里看到過很多類似的問題,但使用了不同的解決方案,但到目前為止,沒有一個問題對我有用。 先感謝您。
也許您已經嘗試過這種方法,但是如果沒有,請執行以下操作:
<?php
$params = array('current-url' => $_SERVER['REQUEST_URI']);
$xml = new DOMDocument;
$xml->load('main.xml');
$xsl = new DOMDocument;
$xsl->load('blocks/common.xsl');
$proc = new XSLTProcessor;
$proc -> registerPHPFunctions();
$proc->importStyleSheet($xsl);
foreach ($params as $key => $val)
$proc->setParameter('', $key, $val);
echo $proc->transformToXML($xml);
?>
在xsl中,在模板上方添加
<xsl:param name="current-url" />
在模板中,您可以使用
<xsl:value-of select="$current-url" />
如果還不存在,則必須將xmlns:php="http://php.net/xsl"
到xsl:stylesheet聲明中。
供參考: registerPHPFunctions()和您可能已經在SO上檢查過的解決方案:將變量傳遞給XSLT
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.