0

以下は、非表示の変数を指定し、後でアクセスするための値を割り当てたいコードです。

 <xsl:for-each select="//Root/Record">
     <xsl:if test="(@CIMtrek_accountlist_customer_number != '') ">
     <option style="padding:5px;">
    <xsl:attribute name="class">>
    <xsl:choose>
            <xsl:when test="(position() mod 2) = 0">
            AlternateRowOne
</xsl:when>
<xsl:otherwise>
AlternateRowTwo
</xsl:otherwise>
    </xsl:choose>
            </xsl:attribute>
// here i want to set hidden varialble and assign the value for it
        <xsl:attribute name="value">
                    <xsl:value-of
            select="@CIMtrek_accountlist_customer_number" /></xsl:attribute>
        <xsl:value-select="@CIMtrek_accountlist_customer_number" />
                </option>
                </xsl:if>
                </xsl:for-each>

変数名は次のようになります

<input type="hidden"
name="hdnDialogListCtrlPlaceholder_CIMtrek_DailyshipCo_Destination_"+i
id="hdnDialogListCtrlPlaceholder_CIMtrek_DailyshipCo_Destination_"+i
 />

where i =0
and i++;

name_1
name_2
name_n

使用することは可能ですか:<FieldRef Name="<FieldInternalName>" Explicit="TRUE"/> xslでこれを行う方法

4

2 に答える 2

2

私は通常、次の方法で再帰を実行します。

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

    <xsl:template match="/">
        <xsl:call-template name="recur">
            <xsl:with-param name="max_recursions" select="5"/>
        </xsl:call-template>
    </xsl:template>

    <xsl:template name="recur">
        <xsl:param name="n">0</xsl:param>
        <xsl:param name="max_recursions"/>
        REPEATING UNIT HERE
        <xsl:if test="$max_recursions != $n">
            <xsl:call-template name="recur">
                <xsl:with-param name="n" select="$n + 1"/>
                <xsl:with-param name="max_recursions" select="$max_recursions"/>
            </xsl:call-template>
        </xsl:if>
    </xsl:template>

</xsl:stylesheet>

ただし、あまりお勧めできません。通常、適切に構築されたXPathを使用すると、はるかに高速で簡潔で読みやすいコードを実現できます。

于 2012-12-19T09:01:12.737 に答える
1

XSLTで手続き型コードを記述しようとしていますが、それは機能しません。実行したい変換(入力とは何か、出力とは何か、それらはどのように関連しているのか)を説明すると、「XSLTの方法」で、つまり宣言的に実行する方法を示すことができます。

于 2012-12-18T11:37:11.270 に答える