Значение параметров, значения которых производятся динамически, может быть доступно только через ссылку на параметр (с использованием синтаксиса '$'paramName
).
Из комментария, сделанного ОР:
Есть ли способ, чтобы увидеть, какие параметры были переданы в преобразования в то время как внутри файла XSLT?
Да, есть такой способ, который может быть успешным в значительной степени:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:param name="pmyParam1" select="-999999999999999"/>
<xsl:template match="/">
<xsl:if test="not($pmyParam1 = '-999999999999999')">
$pmyParam1 has a non-default value -- was definitely set from outside !
</xsl:if>
</xsl:template>
</xsl:stylesheet>
Преобразование выше сравнивает значение параметра со значением по умолчанию, заданный. Если два значения отличаются друг от друга, это означает, что было передано внешнее значение. Если нет, нельзя сделать твердое заключение.
Однако, если значение по умолчанию выбрано так, чтобы быть уникальным и очень маловероятным для инициатора преобразования, чтобы знать, то тот факт, что фактические и значения по умолчанию одинаковы, сильно подразумевает, что внешний вызывающий не указал значение для этого параметра.
Есть ли способ увидеть, какие параметры были переданы в преобразование, находясь внутри файла xslt? – user2184503
Вы должны быть в состоянии проверить, указан ли параметр или нет с помощью 'boolean ($ myParam1)' (если вы не передадите ему логическое значение) или используя вышеприведенный подход, вы должны быть в состоянии проверить для 'boolean ($ params [@name = 'paramName']/node()) ' – JLRishe