This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Displaying column headers only if variable changes



I have an xml list of diagrams. Each diagram has a type. I am sorting on that type with,

<xsl:sort data-type="text" order="descending" case-order="upper-first" select="type"/>
<xsl:sort data-type="text" order="ascending" case-order="upper-first" select="Foundation.Core.ModelElement.name"/>

This works fine. What I need to do now, however, is every time the type changes, print the type name. This would result in something like this:

Activity
diagram 1
diagram 2

Use Case
diagram 1
diagram 2

Sequence
diagram 1
diagram 2
diagram 3

I set up a global variable called lastDiagramType, using this code:
<xsl:variable name="lastDiagramType">LAST</xsl:variable>

And I'm checking it like this as I loop through in my for-each:
<xsl:if test="type != $lastDiagramType">
<b><xsl:value-of select="type"/></b><br/>
<xsl:variable name="lastDiagramType"><xsl:value-of select="type"/></xsl:variable>
<b><xsl:value-of select="lastDiagramType"/></b><br/>
</xsl:if>

Problem is, it doesn't set the "lastDiagramType" variable to the new type. As you see in the code, right now I'm printing what lastDiagramType is changed to, for debug purposes, and it never changes. It stays "LAST" as I default set it, but it is hitting that code.

Any ideas?

Brian N. Burridge
Sr. Internet Developer Analyst
The Internet Group @ Cox Target Media




 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]