2011-05-07 87 views
2

我对XSLT比较陌生,想知道如何使用从XML节点获取的值修改标记的href属性。修改html的href属性的XSL <a>标记

尤其是我的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> 

的大写字母表示什么,我尽力去完成。 有人请回复。 感谢

回答

2

为了您的XSLT,最简单的事情是使用一个Attribute Value Template (AVT)并选择<id>值,就像这样:

<a href='admin.php?room={id}'>this is a link</a> 
+1

+1这消息对我来说,有很多比'XSL更方便:attribute' 。谢谢! – 2011-05-07 13:19:32

+0

不错的一个!感谢一百万xD – ptheofan 2011-05-12 19:05:43

0

您正在寻找xsl:attribute。我真的不知道有关参考目前id应该是什么样子,但这样的事情应该让你开始:

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