Use translate function with if statement
File: Data.xml
<poem>
<a>line 1</a>
<b>line 1</b>
<c>line 1</c>
<d>
line 1
</d>
</poem>
File: Transform.xslt
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="xml" omit-xml-declaration="yes" indent="no" />
<xsl:template match="a">
<xsl:if test=". = 'line 1'">
1. a = "line 1"
</xsl:if>
<xsl:if test=". = ../b">2. a = ../b</xsl:if>
<xsl:if test=". = ../c">3. a = ../c</xsl:if>
<xsl:if test=". != ../c">4. a != ../c</xsl:if>
<xsl:if
test="translate(.,'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ') = translate(../c,'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ')">
5. a = ../c (ignoring case)
</xsl:if>
<xsl:if test=". = ../d">6. a = ../d</xsl:if>
<xsl:if test=". = normalize-space(../d)">
7. a = normalize-space(../d)
</xsl:if>
</xsl:template>
<xsl:template match="b|c|d" />
</xsl:stylesheet>
Output:
1. a = "line 1"
2. a = ../b3. a = ../c
5. a = ../c (ignoring case)
7. a = normalize-space(../d)
Related examples in the same category