XSLT: replace an integer by a string

Posted by binogure on Stack Overflow See other posts from Stack Overflow or by binogure
Published on 2012-08-31T15:31:18Z Indexed on 2012/08/31 15:38 UTC
Read the original article Hit count: 209

Filed under:
|
|
|

I have a little problem. A node in my XML may contains and integer, and i have to replace this integer by a string. Each number match with a string.

For example i have:


Integer - String

1 - TODO

2 - IN PROGRESS

3 - DONE

4 - ERROR

5 - ABORTED


Original XML:

    <root>
       <status>1</status>
    </root>

Converted XML:

    <root>
       <status>TODO</status>
    </root>

So i want replace 1 by "TODO", 2 by "IN PROGRESS" ...

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
            <xsl:template match="/root/status">
    <root>
      <status>
                <xsl:variable name="text" select="." />

                <xsl:choose>
                    <xsl:when test="contains($text, '1')">

                        <xsl:value-of select="'TODO'"/>
                    </xsl:when>
                    <xsl:otherwise>
                        <xsl:value-of select="$text"/>
                    </xsl:otherwise>
                </xsl:choose>
    </status></root>
            </xsl:template>
    </xsl:stylesheet>

I'am asking if there is another way to do that.

© Stack Overflow or respective owner

Related posts about string

Related posts about xslt