Как брать цвет из таблицы XSL?
<item>
<num color="#336600">1</num>
<val>0</val>
</item>
<item>
<num color="#330000">2</num>
<val>1</val>
</item>
<item>
<num color="#330066">3</num>
<val>1</val>
</item>
<item>
<num color="#660033">4</num>
<val>2</val>
</item>
<item>
<num color="#006633">5</num>
<val>3</val>
</item>
<item>
<num color="#000033">6</num>
<val>5</val>
</item>
<item>
<num color="#663300">7</num>
<val>8</val>
</item>
<item>
<num color="#003300">8</num>
<val>13</val>
</item>
<item>
<num color="#003366">9</num>
<val>21</val>
</item>
Как брать из нее цвет, чтобы его можно было применить?
Просто пока у меня получатеся только так..
Как реализованно у меня:
<xsl:template match="variants/sequence">
<xsl:choose>
<xsl:when test="@variant = 1">
<xsl:value-of select="name"/>
<table border="2" cellspacing="0" cellpadding="10" >
<tr>
<th>N</th>
<xsl:for-each select="items/item">
<xsl:value-of select="//num/@color"/>
<th bgcolor="@color" style="color:white;">
<xsl:value-of select="num"/>
</th>
</xsl:for-each>
</tr>
<tr>
<th>Значение</th>
<xsl:for-each select="items/item">
<th>
<xsl:value-of select="val"/>
</th>
</xsl:for-each>
</tr>
</table>
</xsl:when>
</xsl:choose>
</xsl:template>
Ответы (1 шт):
Автор решения: Alexander Petrov
→ Ссылка
Фигурные скобки означают, что это выражение, а не литерал.
Точка в пути означает текущий узел (item).
<xsl:for-each select="items/item">
<th bgcolor="{./num/@color}" style="color:white;">
<xsl:value-of select="num"/>
</th>
</xsl:for-each>
Вариант с промежуточной переменной:
<xsl:for-each select="items/item">
<xsl:variable name="color" select="./num/@color" />
<th bgcolor="{$color}" style="color:white;">
<xsl:value-of select="num"/>
</th>
</xsl:for-each>