我想为替代表格行添加颜色。我想使用以下方法:
<xsl:template match="tr">
<xsl:attribute name="bg-color">
<xsl:choose>
<xsl:when test= position() mod 2 = 0><xsl:text>#CCCCCC</xsl:text></xsl:when>
<xsl:otherwise>#DDDDDD</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
</xsl:template>
但是事物是节点<tr>
也是tag的子节点<tr>
。我如何获得上级<tr>
职位?
<table>
<tr>
<td>1</td>
<td>2</td>
</tr>
<tr>
<td>1</td>
<td>2</td>
<tr><td>3</td><td>4</td></tr>
<tr><td>5</td><td>6</td></tr>
</tr>
...
</table>
我如何过滤掉<tr>
内部<tr>
?
您可以使用更具判别性的匹配,例如您的等级不能超过1:
<xsl:template match="table/tr/td/table/tr">
这样,将应用于第2级表中的tr的模板可以与另一个模板不同。
或者,您可以在match =“ tr”中为找到的每个表/ tr / td使用调用模板(以命名模板命名)。
或者,您可以使用xsl检查祖先是否为tr:
<xsl:if test="ancestor::tr">
您已经检查了模块性,如果不想添加模板,则只需添加条件,例如:
test="position() mod 2 = 0 and not ancestor::tr"
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句