(xslt v1.0) Пока код работает с переменной c, я намереваюсь использовать переменные перед выходом из более длинного списка другого файла .xsl.
Так работает следующий код с четырьмя жестко закодированными значениями TA_ID в переменной "ars":
utility.xsl
<xsl:variable name="ars">
<AR><TA_TYPE>T1</TA_TYPE><TA_ID>Test1</TA_ID></AR>
<AR><TA_TYPE>T2</TA_TYPE><TA_ID>Test2</TA_ID></AR>
<AR><TA_TYPE>T3</TA_TYPE><TA_ID>Test3</TA_ID></AR>
<AR><TA_TYPE>T4</TA_TYPE><TA_ID>Test4</TA_ID></AR>
</xsl:variable>
<xsl:call-template name="buildARCondition">
<xsl:with-param name="field_id">1200</xsl:with-param>
<xsl:with-param name="field_name">ARs by Type</xsl:with-param>
<xsl:with-param name="ars" select="exsl:node-set($ars)"/>
</xsl:call-template>
+++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++
Однако я пытаюсь выполнить l oop через четыре TA_TYPE в файле utility.xsl и извлечь только те значения, которые мне нужны, из уже существующего списка в converter.xsl. Как видите, список в файле converter.xsl имеет пять значений. Этот код в настоящее время не работает.
converter.xsl
<xsl:when test="$fieldName = 'TA_TYPE'">
<xsl:choose>
<xsl:when test="$fieldValue='T1'">Test1</xsl:when>
<xsl:when test="$fieldValue='T2'">Test2</xsl:when>
<xsl:when test="$fieldValue='T3'">Test3</xsl:when>
<xsl:when test="$fieldValue='T4'">Test4</xsl:when>
<xsl:when test="$fieldValue='T5'">Test5</xsl:when>
</xsl:choose>
</xsl:when>
utility.xsl
<xsl:include href="../../converter.xsl"/>
<xsl:variable name="ars">
<AR><TA_TYPE>T1</TA_TYPE></AR>
<AR><TA_TYPE>T2</TA_TYPE></AR>
<AR><TA_TYPE>T3</TA_TYPE></AR>
<AR><TA_TYPE>T4</TA_TYPE></AR>
</xsl:variable>
<xsl:for-each select="$ars/*">
<xsl:call-template name="value-convert">
<xsl:with-param name="field_id">TA_TYPE</xsl:with-param>
<xsl:with-param name="field_name"><xsl:value-of select="TA_TYPE"/></xsl:with-param>
</xsl:call-template>
</xsl:for-each>
<xsl:call-template name="buildARCondition">
<xsl:with-param name="field_id">1200</xsl:with-param>
<xsl:with-param name="field_name">ARs by Type</xsl:with-param>
<xsl:with-param name="ars" select="exsl:node-set($ars)"/>
</xsl:call-template>