File: Data.xml <?xml version="1.0" encoding="utf-8"?> <data> <number>9</number> <number>0</number> <number>-9</number> <number/> </data> File: Transform.xslt <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:variable name="A" select="number(//number[1])"/> <xsl:variable name="B" select="number(//number[2])"/> <xsl:variable name="C" select="number(//number[3])"/> <xsl:variable name="D" select="number(//number[4])"/> <xsl:template match="/"> <Paragraph> <xsl:value-of select="string(number($A))"/> </Paragraph> <Paragraph> <xsl:value-of select="string(number($D))"/> </Paragraph> <Paragraph> <xsl:value-of select="$A"/> <xsl:text>/</xsl:text> <xsl:value-of select="$B"/> <xsl:text> = </xsl:text> <xsl:value-of select="string($A div $B)"/> </Paragraph> <Paragraph> <xsl:value-of select="$C"/> <xsl:text>/</xsl:text> <xsl:value-of select="$B"/> <xsl:text> = </xsl:text> <xsl:value-of select="string($C div $B)"/> </Paragraph> <Paragraph> <xsl:value-of select="$B"/> <xsl:text>/</xsl:text> <xsl:value-of select="$B"/> <xsl:text> = </xsl:text> <xsl:value-of select="$B div $B"/> </Paragraph> </xsl:template> </xsl:stylesheet> Output: <?xml version="1.0" encoding="UTF-8"?><Paragraph>9</Paragraph><Paragraph>NaN</Paragraph><Paragraph>9/0 = INF</Paragraph><Paragraph>-9/0 = -INF</Paragraph><Paragraph>0/0 = NaN</Paragraph>