Как использовать XSL для создания атрибутов HTML? - PullRequest
20 голосов
/ 23 февраля 2011

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

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

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

Ответы [ 2 ]

37 голосов
/ 23 февраля 2011

Почему я не могу это сделать?

<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> наверху.

8 голосов
/ 23 февраля 2011

Ваш исходный xsl плохо сформирован, поскольку у вас не может быть тега xsl внутри другого узла.

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

<li>
  <xsl:attribute name="style">
     width:<xsl:value-of select="width"/>px;
  </xsl:attribute>
</li>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...