У меня проблема с файлами XSLT в реальном времени. Исходя из этого, я задаю свой вопрос здесь. У меня есть 3 xslt-файла, такие как 1.xsl
, 2.xsl
и master.xsl
. Это master.xsl
импортируется в 1.xsl
и 2.xsl
Шаблон вызова XSLT с xsl: with-param на другом шаблоне
На master.xsl, я использую это ниже кода
<xsl:call-template name="content">
<xsl:with-param name="request" select="$request"/>
<xsl:call-template>
Как мудрый, на 1.xsl
,
<xsl:template name="content">
<xsl:param name="request" as="node()"/>
....
</xsl:template>
На 2.xsl
<xsl:template name="content">
....
</xsl:template>
Когда я выполнение этой 2.xsl
, я получаю следующее сообщение об ошибке:
XTSE0680: Parameter request is not declared in the called template
На самом деле, переменной запроса только необходимой, когда я исполняю 1.xsl
. Кроме того, я не объявляю фиктивную переменную в шаблоне на 2.xsl
. Например, у меня есть много файлов xslt в режиме реального времени. Таким образом, я не могу объявить одну и ту же переменную во многих файлах xslt, поскольку она будет больше времени, и она не будет последовательной.
Может ли кто-нибудь дать мне идею преодолеть это?
В целях тестирования вы можете предоставить 3 из этих файлов XSL, которые содержат некоторые фиктивные данные? Чтобы мы могли посмотреть на него – NullPointer
«Пока параметр объявлен в вызываемом шаблоне, вы в порядке, оставляя их вне вызова, просто позволяет им принимать значение по умолчанию, что может быть очень полезно». Вы можете проверить его [здесь] (http://www.stylusstudio.com/xsllist/200603/post50460.html) – NullPointer