XSL, изменяющий атрибут href тега html ‹a›

Я новичок в XSLT, и мне было интересно, как я могу изменить атрибут href тега со значением, полученным из узла XML.

В частности, мой файл XML выглядит так

<root>
<privileges edit="1" del="1"></privileges> 
<rooms> 
<room> 
<id>1</id> 
<roomNr>101</roomNr> 
<locked>0</locked> 
<lockdownReason></lockdownReason> 
</room>
</rooms>
</root>

и мой файл XSL выглядит так

<xsl:for-each select="root/rooms/room">
<div class="column toolbox">
<xsl:if test="$edit = 1">
<a href='admin.php?room=VALUE_OF_ID__OF_CURRENTLY_SELECTED_NODE'>this is a link</a>
<p>edit is true</p>
</xsl:if>
</div>
<div class="column">Room Nr.:<xsl:value-of select="roomNr"/></div>
</xsl:for-each>

заглавные буквы указывают на то, что я пытаюсь выполнить. Кто-нибудь, будьте любезны ответить. Спасибо


person ptheofan    schedule 07.05.2011    source источник


Ответы (2)


Для XSLT проще всего использовать шаблон значения атрибута (AVT ) и выберите значение <id>, например:

<a href='admin.php?room={id}'>this is a link</a>
person Mads Hansen    schedule 07.05.2011
comment
+1 для меня это было новостью, гораздо удобнее, чем xsl:attribute. Спасибо! - person Anders Lindahl; 07.05.2011
comment
Хороший! Миллион спасибо хД - person ptheofan; 12.05.2011

Вы ищете xsl:attribute. Я не совсем уверен, как должна выглядеть ссылка на текущий id, но что-то вроде этого должно помочь вам начать:

<a>
<xsl:attribute name="href">admin.php?room=<xsl:value-of select="./id"/></xsl:attribute>
this is a link
</a>
person Anders Lindahl    schedule 07.05.2011