L oop через stati c список и получить значения конвертера из другого файла .xsl (xslt v1.0) - PullRequest
0 голосов
/ 19 марта 2020

(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>
...