我有这个XSL源节点:
<xsl:value-of select="Colour"/> --> #00FF00
我基本上想要完成的是:
<xsl:for-each select="//Collection/DVD">
<tr style="background-color: #00FF00;">
...
</tr>
</xsl:for-each>
我试过这个:
<xsl:text><tr style="background-color: </xsl:text><xsl:value-of select="Colour"/><xsl:text>;"></xsl:text>
但是&lt; tr实际上是在浏览器中输出的。
我也不能这样做:
<xsl:text><tr style="background-color: </xsl:text><xsl:value-of select="Colour"/><xsl:text>;"></xsl:text>
有什么建议吗?
答案 0 :(得分:2)
对此属性使用xsl:attribute
。
<xsl:for-each select="//Collection/DVD">
<tr>
<xsl:attribute name="style">
<xsl:text>background-color: </xsl:text>
<xsl:value-of select="Colour"/>
<xsl:text>;</xsl:text>
</xsl:attribute>
<!--...-->
</tr>
</xsl:for-each>
您可能需要稍微调整此解决方案 - 具体取决于您的输入XML。就像现在一样,它仅在DVD
元素在您的输入中具有子元素Colour
时才有效。
请注意,xsl:value-of
不是 XSLT中的变量。它用于选择节点。