2011-06-21 2 views
1

これは私が私の以前の記事にコメントを追加することはできないんだけど、いくつかの理由のために私の以前の記事expanding/collapsing nested nodes in xslt(パート2)

の続きであるXSLTでネストされたノードを折りたたむ/拡大します。

提供されたソリューションを試しましたが、基本期間が1つしかない場合に機能します。複数の基準期間がある場合、それは機能しません。

私はIE8を使用しています。

答えて

0

複数のベース期間を扱うのはむしろ簡単だと思います。単純なアプローチは、個々のベース期間でそれらを区別するためにsubper_expand DIVコンテナ(およびそのアンカー)のための第2の識別子を追加することである、すなわち:

subper_expand{base period position}_{periond position} 

BasePeriod:

<xsl:apply-templates select="Period"> 
    <xsl:with-param name="bpPos" select="position()"/> 
</xsl:apply-templates> 

期間:

<xsl:param name="bpPos"/> 

<xsl:variable name="subper"> 
    <xsl:value-of select="concat('subper_expand', $bpPos, '_', position())"/> 
</xsl:variable> 
<xsl:variable name="subperiod"> 
    <xsl:value-of select="concat('subperiod_expand', $bpPos, '_', position())"/> 
</xsl:variable> 
... 
<a href="javascript:expandIt({$subper}, {$subperiod})" 
    name="{$subperiod}" class="expandit">Sub Periods</a> 
<div id="{$subper}" style="display:none;"> 

あなたはそれがXSLの変数を使用して読みやすくなります見ての通り。

+0

ありがとうございます。 paramとしての位置を使用すると、問題は解決されました。 – Manu