0
N個の項目を含む一連のリストを持つXMLがありますが、<xsl:variable>
を使用して ノード値を取得できません。<xsl:value-of>は連結変数を使用して文字列を代わりに取得します
マイXSL
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="my_list">
<xsl:param name="num_items" select="my_items" />
<xsl:call-template name="loop_items">
<xsl:with-param name="count" select="$num_items"/>
</xsl:call-template>
</xsl:template>
<xsl:template name="loop_items">
<xsl:param name="count" select="1"/>
<xsl:variable name="varname" select="concat('item0',$count,'_val')"/>
<xsl:if test="$count > 0">
<p>1- <xsl:value-of select='item01_val'/></p>
<p>2- <xsl:value-of select="concat('item0',$count,'_val')" /></p>
<p>3- <xsl:value-of select="$varname" /></p>
<xsl:call-template name="loop_items">
<xsl:with-param name="count" select="$count - 1"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
マイXML
<?xml version="1.0" encoding="UTF-8"?>
<my_list>
<my_items>4</my_items>
<item01_val>lorem</item_01_val>
<item02_val>ipsum</item_02_val>
<item03_val>dolor</item_03_val>
<item04_val>sit</item_04_val>
</my_list>
結果は、私が予想:
1- lorem
2- lorem
3- lorem
1- ipsum
2- ipsum
3- ipsum
.....
私は本当に持っているもの:
1-lorem
2-item01_val
3-item01_val
1-ipsum
2-item02_val
3-item02_val
ご覧のとおり、私はノード値の代わりに文字列を取得しています。
私は命令XSLT 1.0
**再現可能な**例を投稿してください。あなたのXMLは整形式ではなく、 'loop_answers'という名前のテンプレートはありません。 –