如果以admin身份登录,我试图为每一行显示一个编辑按钮。
XML:
<vendors>
<vendor id="1" name="Microsoft" description="1" odd="1"></vendor>
<vendor id="2" name="Apple" description="1"></vendor>
<vendor id="3" name="Google" description="1" odd="1"></vendor>
<security ADMIN="1"></security>
</vendors>
XSLT:
<xsl:template match="vendors">
<table>
<thead>
<tr>
<xsl:if test="/vendors/security/@ADMIN = '1'">
<td></td>
</xsl:if>
<td>Name</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<xsl:for-each select="vendor">
<tr>
<xsl:if test="@odd = '1'">
<xsl:attribute name="class">odd</xsl:attribute>
</xsl:if>
<xsl:if test="/vendors/security/@ADMIN = '1'">
<th><a href="#"><img src='edit.gif'></a></th>
</xsl:if>
<td title='Name'><xsl:value-of select="@name" /></td>
<td title='Description'><xsl:value-of select="@description" /></td>
</tr>
</xsl:for-each>
</tbody>
</table>
</div>
</xsl:template>
现在这不起作用。以admin身份登录(@ADMIN =“1”)时,一切正常。使用@ADMIN =“”登录时,不显示任何表格单元格(仅显示空行)。
答案 0 :(得分:1)
除了输出文档中的一个问题(未关闭 img 标记而未打开 div ),显示的XSLT是正确的,并且应该显示单元格名称/描述,即使< strong> @ADMIN 是“”(使用Saxon测试)。
您也可以直接比较整数,如下所示:
test="/vendors/security/@ADMIN = 1"