我想在xslt中创建动态映射,并根据xslt中的一些条件填充动态映射,我该怎么做呢?我可以看到像下面这样的硬编码映射示例,并将其存储在变量中,但我不希望这样
<xsl:variable name="map">
<map>
<entry key="key-1">value1</entry>
<entry key="key-2">value2</entry>
<entry key="key-3">value3</entry>
</map>
</xsl:variable>发布于 2021-06-09 19:08:53
直接来自https://www.w3.org/TR/xslt-30/#element-map中的XSLT3规范的是示例
<xsl:variable name="index" as="map(xs:string, element(employee))">
<xsl:map>
<xsl:for-each select="//employee">
<xsl:map-entry key="@empNr" select="."/>
</xsl:for-each>
</xsl:map>
</xsl:variable> 但是,这似乎给出了一个类型错误,除非输入是模式验证的,因此对于非类型化的XML或不支持模式的XSLT,您需要重新定义映射类型或稍微更改一下代码,第二个选项如下所示:
<xsl:variable name="index" as="map(xs:string, element(employee))">
<xsl:map>
<xsl:for-each select="//employee">
<xsl:map-entry key="string(@empNr)" select="."/>
</xsl:for-each>
</xsl:map>
</xsl:variable>https://stackoverflow.com/questions/67902000
复制相似问题