XSLT 2.0访问哈希映射中的属性

时间:2016-08-30 15:04:57

标签: xml xslt

我想访问属性的值,但是当我尝试它时,它不会输出任何内容。 这是我对地图的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的值,希望您能帮助我了解如何访问

1 个答案:

答案 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>