変換を適用すると、例外が発生します。式はノード セットに評価される必要があります。
<xsl:for-each select = "some expression">
<xsl:variable name="a0" select="some expression"/>
<xsl:variable name="a1" select="some expression"/>
<xsl:variable name="a2" select="some expression"/>
<xsl:for-each select="$a0 | $a1 | $a2">
<xsl:value-of select="."/>
<xsl:if test="position()!=last()">,</xsl:if>
</xsl:for-each>
</xsl:for-each>
ここで、if ステートメントを最初のループのレベルに配置すると、変換を適切に適用できます。
「$a0 | $a1 | $a2」という式がノードセットと見なされないことが問題である場合、XSLT 1.0 を使用して同様の目標を達成するにはどうすればよいでしょうか?