2012-01-23 4 views
1

Я пытаюсь заменить различные индикаторы состояния (например, Y или N) столбца «Status_Ind» на изображения. Я хотел бы создать "светофоры", где:
- "Завершено" заменяется /img/green.jpg
- "In Progress" заменяется /img/yellow.jpgXSLT + заменить строку изображением в выбранном столбце

Входной 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> 

ответ

4

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

<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> 
Смежные вопросы