Конкатенация строки в цикле - PullRequest
1 голос
/ 17 января 2012

Я новичок в XSLT и борюсь за то, чтобы получить правильный синтаксис для объединения строк в цикле for-each. У меня есть две переменные, объявленные в зависимости от условия, необходимо объединить строку с переменной.

1 Ответ

2 голосов
/ 17 января 2012

Вот демонстрация объединения строк с xsl:for-each на основе значения переменной:

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output method="text"/>
 <xsl:strip-space elements="*"/>

 <xsl:variable name="vOddEven" select="1"/>

 <xsl:template match="/*">
     <xsl:for-each select="num[. mod 2 = $vOddEven]">
      <xsl:value-of select="."/>
     </xsl:for-each>
 </xsl:template>

</xsl:stylesheet>

, когда это преобразование применяется к следующему документу XML :

<nums>
  <num>01</num>
  <num>02</num>
  <num>03</num>
  <num>04</num>
  <num>05</num>
  <num>06</num>
  <num>07</num>
  <num>08</num>
  <num>09</num>
  <num>10</num>
</nums>

the wanted result (concatenation of all numbers that have the same "oddness" as the variable $ vOddEven ) is produced:

0103050709
...