Compare variable : Variable « XSLT stylesheet « XML






Compare variable


File: Data.xml

<sample>
    <line lid="u1">hello</line>
    <line color="red" lid="u2">hello</line>
    <line color="blue" lid="u3">hello</line>
    <line lid="u4">hello there</line>
    <line color="blue" lid="u5">hello there</line>
    <line color="blue" lid="u6">hello</line>
</sample>
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" />
  <xsl:template match="line">
    <xsl:variable name="contents" select="." />
    <xsl:variable name="colorVal" select="@color" />
    <xsl:if test="not(preceding::line[(. = $contents) and (@color = $colorVal)])">
      <xsl:copy>
        <xsl:apply-templates select="@*|node()" />
      </xsl:copy>
    </xsl:if>
  </xsl:template>
  

  <xsl:template match="@*|node()">
    <xsl:copy>
      <xsl:apply-templates select="@*|node()" />
    </xsl:copy>
  </xsl:template>

</xsl:stylesheet>

Output:

<sample>
    <line lid="u1">hello</line>
    <line color="red" lid="u2">hello</line>
    <line color="blue" lid="u3">hello</line>
    <line lid="u4">hello there</line>
    <line color="blue" lid="u5">hello there</line>
    
</sample>

 








Related examples in the same category

1.Define variable and set value
2.Define variable
3.Output variable
4.Define a variable and then use it in for loop
5.Assign value from variable to attribute
6.Use for-each to loop through variable
7.Use constant value from variable
8.Fill variable with the returned value from a function
9.Variable scope
10.substring function with variable
11.Reference variable three times
12.Define number type variable
13.Math calculation
14.value-of and math calculation
15.Variable with number type
16.number level="any" count="chapter|sect1|sect2|sect3" format="Ww - " ordinal="yes"
17.number level="any" count="chapter|sect1|sect2|sect3" format="w - " lang="de"
18.number level="any" count="chapter|sect1|sect2|sect3" format="w - " lang="pl"
19.Thai numbering