我有xslt代码如下。填充不会选择任何颜色。如何修复此代码: 填充=" {($ series_color)/彩色[$索引+ 1]}"
<xsl:variable name="series_color">
<color>#99FF99</color>
<color>#0099FF</color>
<color>#FF6600</color>
<color>#990099</color>
<color>#FF99FF</color>
<color>#666600</color>
<color>#CC99F0</color>
<color>#CC990F</color>
<color>#CC09FF</color>
<color>#0C99FF</color>
<color>#C599FF</color>
<color>#CC59FF</color>
<color>#CC95FF</color>
<color>#CC995F</color>
</xsl:variable>
<xsl:template name="legend">
<xsl:variable name="width" select="100 div count(./series)"/>
<xsl:for-each select="./series">
<xsl:variable name="index" select="count(preceding::series)"/>
<rect x="{$index * $width}%" y="0" width="{$width}%" height="100%" fill="{($series_color)/color[$index+1]}" stroke="black" stroke-width="2"/>
</xsl:for-each>
</xsl:template>
答案 0 :(得分:2)
猜测:由于您正在生成<rect>
元素,并且SVG具有<rect>
元素,我猜您正在生成SVG,这意味着您的样式表可能使用SVG名称空间作为默认名称空间。如果这是正确的,$ series_color中的元素也在SVG名称空间中,需要作为svg:color进行寻址。
这说明了提供完整的可运行示例的重要性。如果错误出现在您已修剪过的代码中(在本例中为xsl:stylesheet标题),则很难找到它。