我需要以粗体显示今天超过2年的所有行 如何在不重复代码的情况下执行此操作? 我可以弄清楚条件,但无法弄清楚如何不使用不同的粗体样式复制所有代码。
这是我的代码:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:key name="albums-by-country" match="Album" use="Country" />
<xsl:template match="Albums">
<html>
<head>
<style>
h4 {
text-decoration: underline;
font-weight: bold;
}
</style>
</head>
<body>
<xsl:for-each select="Album[count(. | key('albums-by-country', Country)[1]) = 1]">
<xsl:sort select="Country" />
<h4 style="color:green;"><xsl:value-of select="Country" style="color:red;" /><br /></h4>
<table border="1">
<tr bgcolor="#979994">
<th style="text-align:left">Price</th>
<th style="text-align:left">Link</th>
<th style="text-align:left">Company</th>
<th style="text-align:left">Name</th>
<th style="text-align:left">Date</th>
<th style="text-align:left">Artist</th>
</tr>
<xsl:for-each select="key('albums-by-country', Country)">
<xsl:sort select="Date" />
<tr>
<td><xsl:value-of select="Price"/></td>
<td><xsl:value-of select="Link"/></td>
<td><xsl:value-of select="Company"/></td>
<td><xsl:value-of select="Name"/></td>
<xsl:choose>
<xsl:when test="string-length(Date)>4">
<td><xsl:value-of select="concat(substring(Date,5,2),'/',substring(Date,7,8),'/',substring(Date,1,4))"/></td>
</xsl:when>
<xsl:otherwise>
<td><xsl:value-of select="concat('01/01/',substring(Date,1,4))"/></td>
</xsl:otherwise>
</xsl:choose>
<td style="color:red;"><xsl:value-of select="Artist"/></td>
</tr>
</xsl:for-each>
<tr>
<td colspan="2">Total Amount</td>
<td bgcolor="#ffff00"><xsl:value-of select="sum(key('albums-by-country', Country)/Price)"/></td>
</tr>
</table>
<html>
<body>
</xsl:template>
</xsl:stylesheet>
答案 0 :(得分:0)
看起来你通过在tr或td中添加样式来加粗。只需在if条件中使用属性函数。
<tr> <!-- or td -->
<xsl:if test="{Older the 2 years}">
<xsl:attribute name="style">bold whatever</attribute>
</if>