我正在尝试用图像替换列“Status_Ind”的不同状态指示符(例如Y或N)。我想创建“交通灯”,其中:
- 用“/img/green.jpg”替换“已完成”
- 用“/img/yellow.jpg”取代“进行中”
输入XML:
<Rowsets>
<Rowset>
<Columns>
<Column Description="Status_Ind"/>
<Column Description="Name"/>
</Columns>
<Row>
<Status_Ind>Completed</Status_Ind>
<Name>TASK1</Name>
</Row>
<Row>
<Status_Ind>In Progress</Status_Ind>
<Name>TASK2</Name>
</Row>
</Rowset>
</Rowsets>
对于XSLT,我使用https://stackoverflow.com/a/8841189/1130511
中的代码我的尝试:
<xsl:template match="@Description='Status_Ind']">
<xsl:choose>
<xsl:when test="Completed">
<img src="../img/green.jpg" />
</xsl:when>
<xsl:when test="In Progress">
<img src="../img/yellow.jpg" />
</xsl:when>
</xsl:choose>
</xsl:template>
答案 0 :(得分:4)
使用两个专用模板轻松:
<xsl:template match="Status_Ind[. = 'Completed']">
<img src="../img/green.jpg" />
</xsl:template>
<xsl:template match="Status_Ind[. = 'In Progress']">
<img src="../img/yellow.jpg" />
</xsl:template>
这样你就可以做到
<xsl:template match="Row">
<tr>
<td><xsl:apply-templates select="Status_Ind" /></td>
<!-- etc -->
</tr>
</xsl:template>