我正在使用XSLTprocessor脚本从外部源获取数据。 现在我想测试某个值是否为空,然后返回一个空字段。 这是我现在在XSL样式表中使用的代码。
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="/">
<table border="1" style="width:600px;margin-top:20px">
<tr>
<th align="left" style="text-transform: uppercase; font-size: 14px; color: white;font-weight: normal;">Date</th>
<th align="left" style="text-transform: uppercase; font-size: 14px; color: white;font-weight: normal;">Location</th>
<th align="right" style="text-transform: uppercase; font-size: 14px; color: white;font-weight: normal;">City</th>
<th align="right" style="text-transform: uppercase; font-size: 14px; color: white;font-weight: normal;">Country</th>
<th align="right" style="text-transform: uppercase; font-size: 14px; color: white;font-weight: normal;">Facebook</th>
</tr>
<xsl:for-each select="//item">
<tr>
<td style="text-align:left;"><xsl:value-of select="date" /></td>
<td style="text-align:left;color:#ccc;"><xsl:value-of select="location" /></td>
<td style="text-align:right;"><xsl:value-of select="city "/></td>
<td style="text-align:right;"><xsl:value-of select="country" /></td>
<td style="text-align:right;"><a>
<xsl:attribute name="href">
<xsl:value-of select="website" />
</xsl:attribute>
<xsl:attribute name="target">new</xsl:attribute>
I'm Attending
</a></td>
</tr>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>
我想在“网站”值上有条件声明,该值返回指向Facebook事件链接的链接。但是当数据来自的系统中没有任何内容填充时,它不应该显示链接(我正在参加)
如何使用XSL测试或某种条件语句执行此操作?
答案 0 :(得分:2)
我想对“网站”值有条件声明 返回指向Facebook事件链接的链接。但什么都没有 填写数据来自的系统,它不应该显示 链接(我正在参加)
在XSLT中执行此操作的简单而优雅的方法:
<xsl:apply-templates select="website[text()]"/>
然后有这个模板:
<xsl:template match="website">
<td style="text-align:right;">
<a href="{.}" target="new">I'm Attending</a>
</td>
</xsl:template>
此处您无需验证website
元素是否存在 - XSLT处理器可以帮助您完成此任务。通过这种方式,我们不必编写任何显式条件指令,代码简单,简短且易读。
答案 1 :(得分:1)
尝试使用链接显示:
<xsl:if test="website/text()">
<a>
<xsl:attribute name="href">
<xsl:value-of select="website" />
</xsl:attribute>
<xsl:attribute name="target">new</xsl:attribute>
I'm Attending
</a>
</xsl:if>