我想访问属性的值,但是当我尝试它时,它不会输出任何内容。 这是我对地图的xslt定义。
<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[@key=@DataSource]"/></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的值,希望您能帮助我了解如何访问
答案 0 :(得分:1)
我想你想要<coso3><xsl:value-of select="$fieldsDataSources/entry[@key = current()/@DataSource]"/></coso3>
,假设你想要将key
元素的entry
属性与外部上下文节点的DataSource
进行比较(例如模板的模板)或为每个人。
一般情况下,我建议您定义一个键<xsl:key name="format" match="entry" use="@key"/>
,然后使用<coso3><xsl:value-of select="key('format', @DataSource, $fieldsDataSources)"/></coso3>
。