2010-02-13 2 views
1

에 위치()의 결과를 할당 : I 출력의 계산 결과를 표시하는 것을 시도하고XSL :이 같은 요소 위치에 할당하는 것을 시도하고 가변

<xsl:variable name="offset" select="ancestor::myparent/position() * 8"/> 

을하므로 선택기를 사용하는 것만으로는 충분하지 않습니다. xsltproc은 다음 오류를 생성합니다.

XPath error : Invalid expression 
ancestor::myparent/position() * 8 
          ^
compilation error: file foo.xsl line 10 element variable 
XSLT-variable: Failed to compile the XPath expression 'ancestor::myparent/position() * 8'. 

이 방법이 있습니까?

답변

2

position()은 특정 환경에서만 참조 할 수 있습니다.

myparent 요소를 처리 할 때 변수를 설정해야합니다.

<xsl:template match="myparent"> 
    <xsl:variable name="offset" select="position() * 8"/> 
    <xsl:apply-templates> 
    <xsl:with-param name="offset" select="$offset"/> 
    </xsl:apply-templates> 
</xsl:template> 

위와 같은 것입니다. 오프셋이 필요한 템플리트에 매개 변수를 추가하십시오.