Hi all,
I have the XSLT as below:
[code]
| lxsl := '<?xml version="1.0" encoding="ISO-8859-1"?> |
<xsl:stylesheet version="1.0"
| <xsl:key name="rpt" match="*" use="REPORT_TYPE"/> |
<xsl:key name="cmp" match="*" use="concat(REPORT_TYPE, '-', AUDIT_COMPANY)"/>
<xsl:key name="tpa" match="*" use="concat(concat(REPORT_TYPE, '-', AUDIT_COMPANY), '-', TPA_AUDITOR)"/>
<xsl:key name="asg" match="*" use="concat(concat(concat(REPORT_TYPE, '-', AUDIT_COMPANY), '-', TPA_AUDITOR), '-', ASSIGNMENTS)"/>
<xsl:template match="/">
| <xsl:apply-templates select="ROWSET"/> |
| </xsl:template> |
| <xsl:template match="/ROWSET"> |
| <xsl:for-each select="*[generate-id() = generate-id(key('rpt', REPORT_TYPE )[1])]"> |
| <xsl:if test="not(position() = 1)"> |
| <xsl:text>,</xsl:text> |
| </xsl:if> |
| "<xsl:value-of select="REPORT_TYPE"/>":[ |
| <xsl:apply-templates select="key('rpt', REPORT_TYPE )" mode="grouped-rpt"/> |
| ] |
| </xsl:for-each> |
| } |
| </xsl:template> |
| <xsl:template match="*" mode="grouped-rpt"> |
| <xsl:if test="not(position() = 1)"> |
| <xsl:text>,</xsl:text> |
| </xsl:if> |
| { |
| <xsl:apply-templates select="*" mode="inner"/>, |
| "AUDIT_COMPANIES":[ |
| <xsl:variable name="RT" select="REPORT_TYPE"></xsl:variable> |
| <xsl:for-each select="../*[generate-id() = generate-id(key('cmp', concat($RT, '-', AUDIT_COMPANY) )[1])]"> |
| <xsl:if test="position() > 1"> |
| <xsl:text>,</xsl:text> |
| <xsl:text> </xsl:text> |
| </xsl:if> |
| { |
| <xsl:apply-templates select="AUDIT_COMPANY" mode="grouped-cmp"/> |
| |
| <xsl:apply-templates select="*" mode="grouped-cmp"/>, |
| "AUDITORS":[ |
| <xsl:variable name="RT" select="REPORT_TYPE"></xsl:variable> |
| <xsl:variable name="AC" select="AUDIT_COMPANY"></xsl:variable> |
| <xsl:for-each select="../*[generate-id() = generate-id(key('tpa', concat(concat($RT, '-', $AC), '-', TPA_AUDITOR) )[1])]"> |
| <xsl:if test="position() > 1"> |
| <xsl:text>,</xsl:text> |
| <xsl:text> </xsl:text> |
| </xsl:if> |
| { |
| <xsl:apply-templates select="*" mode="grouped-tpa"/>, |
| "ASSIGNMENTS":[ |
| <xsl:variable name="RT" select="REPORT_TYPE"></xsl:variable> |
| <xsl:variable name="AC" select="AUDIT_COMPANY"></xsl:variable> |
| <xsl:variable name="TA" select="TPA_AUDITOR"></xsl:variable> |
| <xsl:for-each select="../*[generate-id() = generate-id(key('asg', concat(concat(concat($RT, '-', $AC), '-', $TA), '-', ASSIGNMENTS) )[1])]"> |
| <xsl:if test="position() > 1"> |
| <xsl:text>,</xsl:text> |
| <xsl:text> </xsl:text> |
| </xsl:if> |
| { |
| <xsl:apply-templates select="*" mode="grouped-asg"/> |
| } |
| </xsl:for-each> |
| ] |
| } |
| </xsl:for-each> |
| ] |
| } |
| </xsl:for-each> |
| ] |
| } |
| </xsl:template> |
| <xsl:template match="*" mode="inner"> |
| <xsl:if test="position() > 1 and position() < 34"> |
| <xsl:text>,</xsl:text> |
| <xsl:text> </xsl:text> |
| </xsl:if> |
| <xsl:if test="position()<34"> |
| <xsl:text>"</xsl:text> |
| <xsl:value-of select="name()"/> |
| <xsl:text>":"</xsl:text> |
| <xsl:value-of select="text()"/> |
| <xsl:text>"</xsl:text> |
| </xsl:if> |
| </xsl:template> |
| <xsl:template match="*" mode="grouped-cmp"> |
| <xsl:if test="position()=34"> |
| <xsl:text>"</xsl:text> |
| <xsl:value-of select="name()"/> |
| <xsl:text>":"</xsl:text> |
| <xsl:value-of select="text()"/> |
| <xsl:text>"</xsl:text> |
| </xsl:if> |
| </xsl:template> |
| <xsl:template match="*" mode="grouped-tpa"> |
| <xsl:if test="position() = 36"> |
| <xsl:text>,</xsl:text> |
| <xsl:text> </xsl:text> |
| </xsl:if> |
| <xsl:if test="position()>34 and position()<37"> |
| <xsl:text>"</xsl:text> |
| <xsl:value-of select="name()"/> |
| <xsl:text>":"</xsl:text> |
| <xsl:value-of select="text()"/> |
| <xsl:text>"</xsl:text> |
| </xsl:if> |
| </xsl:template> |
| <xsl:template match="*" mode="grouped-asg"> |
| <xsl:if test="position() = 37"> |
| | <xsl:text>"</xsl:text> |
| | <xsl:value-of select="name()"/> |
| | <xsl:text>":"</xsl:text> |
| | <xsl:value-of select="text()"/> |
| | <xsl:text>"</xsl:text> |
| </xsl:if> |
| </xsl:template> |
</xsl:stylesheet>';
[/code]
Now I want to get the distinct values from starting column till my 34th column i.e. till AUDIT_COMPANY grouping .
Thnaks
Damby