2013-10-03 5 views
0

У меня проблема с файлами XSLT в реальном времени. Исходя из этого, я задаю свой вопрос здесь. У меня есть 3 файла xslt, такие как 1.xsl и master.xsl. Это master.xsl импортируется в 1.xslШаблон вызова XSLT на основе conditon

На 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> 

В этот случай, в файле 1.xsl, некоторое время, для шаблона «контент», запрос parameter, там не будет передан. он будет передан через некоторое время.

так, выше шаблон будет (без параметра «запроса») в некоторых случаях

<xsl:template name="content"> 

    .... 
</xsl:template> 

когда нет параметра, это показывает ошибку, как сейчас

XTSE0680: Parameter request is not declared in the called template

так, в этом случае, любезно дайте мне некоторые идеи, чтобы изменить кодировку на master.xsl

+0

Возможный дубликат http://stackoverflow.com/questions/19092393/xslt-calling-template-with-xslwith-param-on-different-template –

+0

@markdark, похоже, но это другое. Я задал еще один вопрос с тем же кодом. есть идеи? pls – Sakthivel

+1

Что означает «как»? in as = "node()" – Jacob

ответ

0

Причины для сообщения об ошибке были пуантами d в ответ на XSLT calling template with xsl:with-param on different template. Вы должны изменить шаблон, чтобы объявить параметр. Или вам нужно будет изменить код в master.xsl, чтобы передать только параметр, например.

<xsl:choose> 
    <xsl:when test="$request"> 
    <xsl:call-template name="content"> 
     <xsl:with-param name="request" select="$request"/> 
    <xsl:call-template> 
    </xsl:when> 
    <xsl:otherwise> 
    <xsl:call-template name="content"/> 
    </xsl:otherwise> 
</xsl:choose> 

Это будет проходить только в $request если это непустая последовательность. Конечно, если ваш код включен в таблицу стилей, где шаблон объявляет параметр, а переменная $request не пуста, вы будете продолжать испытывать ошибку. Во время выполнения нет возможности проверить, ожидает ли шаблон параметр или нет.

Смежные вопросы