私は XSL に少し慣れていないので、いくつか問題があります。私の調査によると、XSL 変数<xsl:variable>
は、トップレベルで宣言されている場合はグローバルであり、テンプレート内で宣言されている場合はローカルであり、値を変更することはできません。ということは、グローバル変数を宣言して、テンプレート内でその値を変更する方法がないということですか?
結果セットを反復処理している次の状況があります。次のようなものがあります。
<xsl:for-each select="NewDataSet/Table1">
<xsl:if test="position()= 1">
<xsl:value-of select="SchoolName"/>
</xsl:if>
<xsl:if test="position()= 2">
<xsl:value-of select="gender"/>
</xsl:if>
<xsl:if test="position() = last()">
<div onclick="showTallyBySchool(,'{SchoolName}','{gender}')">
<xsl:value-of select="node()"/>
</div>
</xsl:if>
</xsl:for-each>
ご覧のとおり、反復中に 3 番目の「if」で「gender」と「schoolname」の値が必要です。それらを保存できない場合、どうすればそれらにアクセスできますか?
編集:いくつかのタイプミスを修正しました。これが役立つ場合は、XML からの抜粋を次に示します。
<NewDataSet>
<Table1>
<SchoolName>Unknown School</SchoolName>
<Gender>Male</Gender>
<PS>0</PS>
<PK>0</PK>
<K>0</K>
</Table1>
</NewDataSet>