테이블 셀에서 각 규칙을 처리하려고하는데 변수를 사용할 때 올바른 속성 값에 액세스하는 데 문제가 있습니다.XSLT 2. 0 변수에 대한 노드 선택 직접 선택
맨 아래 규칙 만 처리하려고합니다 (@ 플래그 = "b"). 이 XML
<?xml version="1.0" encoding="UTF-8"?>
<cell>
<rules>
<rule flags="t" width="0.3528" colour="black"/>
<rule flags="b" width="0.3528" colour="black"/>
<rule flags="b" width="0.7056" colour="none"/>
<rule flags="b" width="0.3528" colour="black"/>
</rules>
<para>19.3%</para>
</cell>
나는이 XSLT를 사용하는 경우
을 감안할 때<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:template match="cell">
<xsl:variable name="i">2</xsl:variable>
<xsl:value-of select="child::rules/rule[contains(@flags, 'b')][2]/@width"/>
</xsl:template>
</xsl:stylesheet>
결과는 내가 무엇을 찾고 있지만, 이는 '0.7056'이며, 나는 내 선택에 변수를 사용하는 경우
<xsl:value-of select="child::rules/rule[contains(@flags, 'b')][$i]/@width"/>
결과는 '0.3528 0.7056 0.3528'입니다. 변수에 2의 값이 있어도 모든 규칙 요소의 너비 특성을 잡아 내고 있습니다.
변수를 사용하여 특정 숫자를 사용하면 차이가 발생하는지 궁금합니다. 이 문제를 해결하는 방법에 대해 알아 보겠습니다.
<xsl:variable name="i">2</xsl:variable>
당신이
result tree fragment을 만듭니다 변수에 대한
내가 대신 정수의 문자열로 변수를 치료해야한다고 생각 해요,하지만 강제 할 수있는 방법이있다? – user3198443