xml에서 변수를 가져 오는 xsl 파일이 있는데 서로를 볼 수없는 것 같습니다. 나는 그것이 범위의 문제라는 것을 안다, 나는 단지 내가 잘못하고있는 것을 모른다.xsl 범위 도움말
이것은 여기에서 간단 해졌습니다.
도움을 주시면 감사하겠습니다.
xml에서 변수를 가져 오는 xsl 파일이 있는데 서로를 볼 수없는 것 같습니다. 나는 그것이 범위의 문제라는 것을 안다, 나는 단지 내가 잘못하고있는 것을 모른다.xsl 범위 도움말
이것은 여기에서 간단 해졌습니다.
도움을 주시면 감사하겠습니다.
...
<!-- You may want to use absolute path -->
<xsl:variable name="varOne" select="one/@count" />
<xsl:template match="one">
<!-- // do something -->
</xsl:template>
<xsl:template match="two">
<xsl:if test="$varOne = 'Y'">
<xsl:value-of select="varTwo"/>
</xsl:if>
</xsl:template>
또한 전달하는 매개 변수에 의해 일부 범위 지정 문제를 해결할 수
변수가 유효하다는 것을 확실히 알고 있으므로 변수를 선언하고 다른 변수에서 사용할 수 없습니다. 변수 선언을 템플릿 밖으로 이동시켜 두 변수보다 높은 범위에 있어야합니다. XSL 변수는 불변 기억하는 것을
...
<xsl:apply-templates select="two">
<xsl:with-param name="varOne">
<xsl:value-of select="one/@count"/>
</xsl:with-param>
</xsl:apply-templates>
<xsl:template match="two">
<xsl:param name="varOne"/>
<xsl:if test="$varOne = 'Y'">
<xsl:value-of select="varTwo"/>
</xsl:if>
</xsl:template>
XSLT에서 변수의 범위는 둘러싸이다 요소. 여러 요소에서 변수를 볼 수있게하려면 해당 변수의 선언이 해당 요소와 같거나 그 이상이어야합니다.
불변의 것은 아마도 정적 인 final보다 더 좋은 용어 일 것입니다. – Kev