XSLT: добавить текст внутри HTML-тега - PullRequest
2 голосов
/ 02 августа 2009

Можно ли добавить текст из переменной xsl внутрь тега html примерно так?

<xsl:variable name="selected">
   <xsl:if test="@class = 'selected'"> class="selected"</xsl:if>
</xsl:variable>

<li{$selected}></li>

Ответы [ 3 ]

5 голосов
/ 02 августа 2009

Попробуйте это:

<xsl:element name="li">
    <xsl:if test="@class = 'selected'">
        <xsl:attribute name="class">
            selected
        </xsl:attribute>
    </xsl:if>
</xsl:element>

Опционально, xsl:if может быть вложено в xsl:attribute, а не наоборот, если требуется class="". Как уже упоминалось, неразумно писать это в виде буквального текста.

5 голосов
/ 02 августа 2009

Вы не должны пытаться записать это как буквальный текст, вместо этого посмотрите на xsl: element и xsl: attribute. Грубый пример:

<xsl:element name="li">
    <xsl:attribute name="class">
        <xsl:value-of select="$selected" />
    </xsl:attribute>
</xsl:element>

Полная документация здесь.

3 голосов
/ 03 августа 2009

Обратите внимание, что если вы достаточно осторожны, чтобы сделать его своим первым ребенком, вы можете использовать <xsl:attribute> непосредственно внутри тега <li> вместо <xsl:element>

<li>
    <xsl:if test="$selected">
        <!-- Will refer to the last opened element, li -->
        <xsl:attribute name="class">selected</xsl:attribute>
    </xsl:if>

    <!-- Anything else must come _after_ xsl:attribute -->
</li>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...