需要根据XML变量值更改文本的颜色

时间:2018-12-10 22:10:13

标签: xml xslt conditional

我想根据变量返回的值有条件地更改XML文件中显示的文本的颜色。
它将是“是”或“否”。

这是XML:

<tr style="height: 18px;">
  <td style="width: 163px; height: 18px;"><strong>Validation Required?</strong></td>
  <td style="width: 50px; height: 18px;"><xsl:value-of select="Validation_Required"></xsl:value-of></td>
  <td style="width: 652px; height: 18px;" colspan="4"></td>
</tr>

我希望Validation_Required?值的文本在值为“是”时显示为红色,而在值为“否”时显示为黑色。

到目前为止,我对这种方法还没有运气:

<xsl:when test="Validation_Required='Yes'">

我想知道是否有人可以指出我正确的方向。

1 个答案:

答案 0 :(得分:0)

使用$前缀访问XSLT中的变量,因此要访问变量Validation_Required,您必须为其加上前缀。

将代码更改为

<tr style="height: 18px;">
  <td style="width: 163px; height: 18px;"><strong>Validation Required?</strong></td>
  <td style="width: 50px; height: 18px;">
    <xsl:choose>
      <xsl:when test="$Validation_Required='Yes'">
        <span style="color:rgb(255, 0, 0);">
          <xsl:value-of select="$Validation_Required"></xsl:value-of>
        </span>
      </xsl:when>
      <xsl:when test="$Validation_Required='No'">
        <span style="color:rgb(0, 0, 0);">
          <xsl:value-of select="$Validation_Required"></xsl:value-of>
        </span>
      </xsl:when>
    </xsl:choose>
  </td>
  <td style="width: 652px; height: 18px;" colspan="4"></td>
</tr>

根据td变量的值更改一个Validation_Required元素的颜色。