2016-08-30 25 views
0

属性の値にアクセスしたいが、試しても何も出力されない。 これはマップのxslt定義です。XSLT 2.0のハッシュマップの属性へのアクセス

<xsl:variable name="fieldsDataSources"> <entry key="PrintDate">new SimpleDateFormat("dd/MM/yyyy")</entry> <entry key="PrintTime">new SimpleDateFormat("HH:mm")</entry> <entry key="PageNumber">$V{PAGE_NUMBER}</entry> </xsl:variable>

そしてこれは、私はそれを呼び出す方法です。

<coso3><xsl:value-of select="$fieldsDataSources/entry[@[email protected]]"/></coso3> <coso><xsl:value-of select="$fieldsDataSources/entry[@key='PrintDate']"/></coso> <coso2><xsl:value-of select="@DataSource"/></coso2>

これが出力されます。

<coso3/> <coso>new SimpleDateFormat("dd/MM/yyyy")</coso> <coso2>PrintDate</coso2>

あなたが見ることができるように、私は文字列PRINTDATEが含まれている属性を使用してenrtyのPRINTDATEの値にアクセスすることができない、私は願って

答えて

1

keyの属性を0と比較したいと仮定して、私はあなたが<coso3><xsl:value-of select="$fieldsDataSources/entry[@key = current()/@DataSource]"/></coso3>を望んでいるとします外部コンテキストノードの(例:テンプレートの、またはそれぞれの)。

一般的には、<xsl:key name="format" match="entry" use="@key"/>というキーを定義してから<coso3><xsl:value-of select="key('format', @DataSource, $fieldsDataSources)"/></coso3>を使用することをお勧めします。

関連する問題