Mega Code Archive

 
Categories / XML / XSLT StyleSheet
 

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>