XSLT + заменить строку с изображением в выбранном столбце - PullRequest
1 голос
/ 23 января 2012

Я пытаюсь заменить различные индикаторы состояния (например, Y или N) столбца «Status_Ind» на изображения. Я хотел бы создать «светофор», где:
- «Завершено» заменяется на /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>

1 Ответ

4 голосов
/ 23 января 2012

Легко с двумя выделенными шаблонами:

<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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...