我试图绘制一张新地图。在我的源xml中,我有很多产品(产品数据和ID)。如何生成像产品这样的密钥?
目标是从XML到XSLT的XML转换。这个想法是创建一个地图,然后在下一步中调用用于查找我需要的特定产品数据的键。所以我需要知道使用地图是否有可能?或者还有其他解决方案?
源XML的示例
<?xml version="1.0" encoding="UTF-8"?>
<root>
<row>
<id>102</id>
<product>Lenovo 1234</product>
<productfamily>laptop</productfamily>
</row>
<row>
.....
XSLT
<xsl:variable name="val" as="map(xs:integer, xs:integer)">
<xsl:map>
<xsl:for-each select="//id">
<xsl:map-entry key="" select="."/>
</xsl:map>
</xsl:variable>
<xsl:template match="/">
<xsl:value-of select="map:get($val , 102)"/>
</xsl:template>
答案 0 :(得分:1)
要根据数据中的简单功能关系创建地图
<xsl:variable name="index" as="map(*)">
<xsl:map>
<xsl:for-each select="//x">
<xsl:map-entry key=".//@id" select="."/>
</xsl:for-each>
</xsl:map>
</xsl:variable>
或者如果您愿意
<xsl:variable name="index" as="map(*)"
select="map:merge(//x ! map:entry(.//@id, .))"/>