簡體   English   中英

將URL作為參數傳遞給XSL

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM