как использовать значение xsl:param на имя xsl:attribute = “ширина”

Это звучит легким, но ни один из моего "легкого" синтаксиса не работал:

<xsl:param name="length"/>
<xsl:attribute name="width">$length</xsl:attribute>
not
<xsl:attribute name="width"><xsl:value-of-select="$length"></xsl:attribute>

какие-либо предложения?

спасибо

5
задан Dimitre Novatchev 18 April 2010 в 21:49
поделиться

3 ответа

Ваша первая альтернатива не работает, потому что переменные не раскрываются в текстовых узлах. Ваш второй вариант не работает, потому что вы пытаетесь вызвать , а правильный синтаксис - , как описано в разделе Генерация текста с xsl: value-of в стандарте. Вы можете исправить свой код, используя

<xsl:attribute name="width"><xsl:value-of select="$length"/></xsl:attribute>

или, как отмечали другие, вы можете использовать шаблоны значений атрибутов :

<someElement width="{$length}" ... >...</someElement>
1
ответ дан 13 December 2019 в 22:04
поделиться

Вам, вероятно, даже не понадобится xsl: attribute здесь; Самый простой способ сделать это:

<someElement width="{$length}" ... >...</someElement>
1
ответ дан 13 December 2019 в 22:04
поделиться

$ length

Это создаст атрибут со значением строки $ length . Но вам нужно значение xsl: param с именем $ length .

Здесь элемент не закрыт - это делает код XSLT некорректно сформированным xml.

Решение :

Используйте одно из следующих:

или

Для удобочитаемости и компактности по возможности используйте 2. выше .

8
ответ дан 13 December 2019 в 22:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: