Подтвердить что ты не робот

Как использовать XSL для создания атрибутов HTML?

Почему использование XML-данных в HTML-тегах HTML запрещено? Например:

<li style="width:<xsl:value-of select="width"/>px"> 

Почему я не могу это сделать? Существуют ли альтернативные методы?

4b9b3361

Ответ 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> вверху.

Ответ 2

Исходный xsl не сформирован, так как вы не можете иметь тег xsl внутри другого node.

Я думаю, вам нужно использовать атрибут xsl: следующим образом:

<li>
  <xsl:attribute name="style">
     width:<xsl:value-of select="width"/>px;
  </xsl:attribute>
</li>