2016-08-12 4 views
0

두 템플릿을 템플릿 안에 넣을 수 있습니까? 만약 그렇다면 어떻게?하나의 템플릿에 두 개의 "param"이 있습니다.

<xsl:template name="formatDate"> 
    <xsl:param name="timeParam"/> 
    <xsl:param name="withYear"/> 
    <xsl:variable name="dateParam" select="substring-before($timeParam,'T')"/> 
    <xsl:variable name="year" select="substring($dateParam,1,4)"/> 
    <xsl:variable name="month" select="substring($dateParam,6,2)"/> 
    <xsl:variable name="day" select="substring($dateParam,9,2)"/> 
    <xsl:if test="string-length($day) = 1"> 
     <xsl:value-of select="'0'"/> 
    </xsl:if> 
    <xsl:value-of select="$day"/> 
    <xsl:value-of select="'.'"/> 
    <xsl:if test="string-length($month) = 1"> 
     <xsl:value-of select="'0'"/> 
    </xsl:if> 
    <xsl:value-of select="$month"/> 

    <xsl:if test="string-length($withYear) = 1"> 
     <xsl:value-of select="'.'"/> 
     <xsl:value-of select="'0'"/> 
     <xsl:with-param name="withYear" select="$year" /> 
    </xsl:if> 
</xsl:template> 

및 호출 :이 하나의 예를 들어 당신이 어떤 위치에서 보는 것처럼

<xsl:call-template name="formatDate"> 
    <xsl:with-param name="timeParam" select="attribute::time"/> 
    <xsl:with-param name="withYear" select="1"/>      
</xsl:call-template> 
<xsl:call-template name="formatDate"> 
    <xsl:with-param name="timeParam" select="attribute::time"/> 
</xsl:call-template> 

나는 올해 매개 변수 및 다른 사람에 있지 필요합니다.

ps. 두 개의 매개 변수를 사용하는 이유는 코드를 복제하고 싶지 않기 때문입니다.

+0

@PhilRoss을하지만 나를 더 도움이되지 않습니다

내가 대신 생각합니다. 나는'select' 부분을 전달해야합니다 !! – Saber

+1

질문이 명확하지 않습니다. 템플리트에는 원하는만큼의 매개 변수가있을 수 있습니다. 템플릿을 호출 할 때 매개 변수를 전달하지 않으면 템플릿 내에서 정의 된 기본값이 사용됩니다. –

답변

0

귀하의 질문이 정확히 무엇인지 모르겠습니다. xsl:if의 자식으로 xsl:with-param을 가질 수 없으므로 명명 된 템플릿을 변경해야한다고 확신합니다.

<xsl:if test="string-length($withYear) = 1"> 
    <xsl:value-of select="'.'"/> 
    <xsl:value-of select="$year"/> 
</xsl:if> 

하거나 :

<xsl:if test="string-length($withYear) = 1"> 
    <xsl:value-of select="'.'"/> 
    <xsl:value-of select="'0'"/> 
    <xsl:with-param name="withYear" select="$year" /> 
</xsl:if> 

당신이해야

<xsl:if test="$withYear"> 
    <xsl:text>.</xsl:text> 
    <xsl:value-of select="$year"/> 
</xsl:if> 
+0

고마워. 내가 한 그런 실수. 너는 완전히 옳다. – Saber

관련 문제