Пропустить URL-адрес в качестве параметра для 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», например?

Я видел много похожих вопросов здесь с различными решениями, но пока никто не работал. Заранее спасибо.

Related of "Пропустить URL-адрес в качестве параметра для XSL"

Возможно, вы уже пробовали этот подход, но если нет:

 <?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