包含元素列表的xslt变量

包含元素列表的xslt变量,xslt,Xslt,我有如下xslt代码。填充不选择任何颜色。如何修复此代码: fill=“{($series_color)/color[$index+1]}” #99FF99 #0099FF #FF6600 #990099 #FF99FF #666600 #CC99F0 #CC990F #CC09FF #0C99FF #C599FF #CC59FF #CC95FF #CC995F 猜测:因为您正在生成一个元素,而SVG有一个元素,所以我猜您正在生成SVG,这意味着您的样式表可能使用SVG名称空间作为默认名称空间

我有如下xslt代码。填充不选择任何颜色。如何修复此代码: fill=“{($series_color)/color[$index+1]}”


#99FF99
#0099FF
#FF6600
#990099
#FF99FF
#666600
#CC99F0
#CC990F
#CC09FF
#0C99FF
#C599FF
#CC59FF
#CC95FF
#CC995F

猜测:因为您正在生成一个
元素,而SVG有一个
元素,所以我猜您正在生成SVG,这意味着您的样式表可能使用SVG名称空间作为默认名称空间。如果这是正确的,$series\u color中的元素也在SVG名称空间中,需要将其命名为SVG:color


这说明了提供完整的可运行示例的重要性。当您删除的代码(在本例中为xsl:stylesheet头)中存在错误时,很难找到它。

如果这是XSLT 1.0,
$series\u color
是结果树片段,而不是节点集。我编写了一个测试程序来测试“exslt:node set”,但它不起作用。Firefox报告错误:“加载样式表时出错:解析XSLT样式表失败。”代码如下:#99FF99#0099FF#FF6600#990099#FF99FF#666600 colorx:我发现如何在xls下获得正确的颜色。但svg rect命令似乎不接受fill=“{$colorN}”。如何在svg下将vaiable colorN输入到rect?我告诉过你,没有完整的代码很难提供帮助。你为什么忽视这个建议?
<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>