Ответ 1
Почему я не могу это сделать?
<li style="width:<xsl:value-of select="width"/>px">
Поскольку XSL - это сам XML. И это что-то... но не XML.
Вы имеете в виду Шаблон значения атрибута:
<li style="width:{width}px">
или явный вид для более сложных выражений:
<li>
<xsl:attribute name="style">
<xsl:choose>
<xsl:when test="some[condition = 'is met']">thisValue</xsl:when>
<xsl:otherwise>thatValue</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
</li>
или динамические имена атрибутов (обратите внимание, что шаблон значения атрибута в имени):
<li>
<xsl:attribute name="{$attrName}">someValue</xsl:attribute>
</li>
Примечание: Атрибуты должны быть созданы до всех остальных дочерних узлов. Другими словами, держите <xsl:attribute>
вверху.