My XML file looks like this ... except with a few hundred more entry's
<?xml version="1.0" encoding="UTF-8"?>
<tagdiff startTag="DEV-030703-00E" endTag="DEV-030707-00E">
<entry>
<file>
<name>na/biomerieux/brns/notification/EmailNotification.java</name>
<revision>1.28</revision>
<prevrevision>1.27</prevrevision>
</file>
</entry>
<entry>
<file>
<name>na/biomerieux/brns/notification/Finisher.java</name>
<revision>1.26</revision>
<prevrevision>1.25</prevrevision>
</file>
</entry>
<entry>
<file>
<name>na/biomerieux/brns/notification/Sender.java</name>
<revision>1.25</revision>
<prevrevision>1.24</prevrevision>
</file>
</entry>
<entry>
<file>
<name>na/biomerieux/brns/notification/TC_EmailErrorNotification.java</name>
<revision>1.5</revision>
<prevrevision>1.4</prevrevision>
</file>
</entry>
<entry>
<file>
<name>na/biomerieux/brns/notification/TC_EmailSender.java</name>
<revision>1.4</revision>
<prevrevision>1.3</prevrevision>
</file>
</entry>
<entry>
<file>
<name>na/biomerieux/brns/notification/TC_FaxErrorNotification.java</name>
<revision>1.6</revision>
<prevrevision>1.5</prevrevision>
</file>
</entry>
<entry>
<file>
<name>na/biomerieux/brns/notification/TC_Finisher.java</name>
<revision>1.29</revision>
<prevrevision>1.28</prevrevision>
</file>
</entry>
<entry>
<file>
<name>na/biomerieux/brns/notification/TC_NotificationEventLogger.java</name>
<revision>1.4</revision>
<prevrevision>1.3</prevrevision>
</file>
</entry>
<entry>
<file>
<name>inetsoft/report/Common.java</name>
<revision>1.2</revision>
<prevrevision>1.1</prevrevision>
</file>
</entry>
<entry>
<file>
<name>inetsoft/report/CompositeLens.java</name>
<revision>1.2</revision>
<prevrevision>1.1</prevrevision>
</file>
</entry>
<entry>
<file>
<name>inetsoft/report/CompositeSheet.java</name>
<revision>1.2</revision>
<prevrevision>1.1</prevrevision>
</file>
</entry>
<entry>
<file>
<name>inetsoft/report/Context.java</name>
<revision>1.2</revision>
<prevrevision>1.1</prevrevision>
</file>
</entry>
<entry>
<file>
<name>inetsoft/report/EmptyPaintable.java</name>
<revision>1.2</revision>
<prevrevision>1.1</prevrevision>
</file>
</entry>
<entry>
<file>
<name>inetsoft/report/FixedContainer.java</name>
<revision>1.2</revision>
<prevrevision>1.1</prevrevision>
</file>
</entry>
<entry>
<file>
<name>inetsoft/report/HttpPrinter.java</name>
<revision>1.2</revision>
<prevrevision>1.1</prevrevision>
</file>
</entry>
</tagdiff>
My XSLT style sheet is as follows ..........
<!-- a stylesheet to display changelogs ala netbeans -->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version
="1.0">
<xsl:param name="title"/>
<xsl:output method="text"/>
<xsl:template match="*">
<xsl:copy>
<xsl:copy-of select="attribute::*[. != '']"/>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
<xsl:variable name="newline">
<xsl:text>
</xsl:text>
</xsl:variable>
<xsl:template match="tagdiff">
<xsl:value-of select="$title"/>
Differences between <xsl:value-of select="@startTag"/>
<xsl:value-of select="@startDate"/> and <xsl:value-of select="
@endTag"/>
<xsl:value-of select="@endDate"/>
<xsl:value-of select="$newline"/>
<xsl:call-template name="show-entries">
<xsl:with-param name="title">New Files</xsl:with-param>
<xsl:with-param name="entries" select
=".//entry[file/revision][not(file/prevrevision)]"/>
</xsl:call-template>
<xsl:call-template name="show-entries">
<xsl:with-param name="title">Modified
Files</xsl:with-param>
<xsl:with-param name="entries" select
=".//entry[file/revision][file/prevrevision]"/>
</xsl:call-template>
<xsl:call-template name="show-entries">
<xsl:with-param name="title">Removed
Files</xsl:with-param>
<xsl:with-param name="entries" select
=".//entry[not(file/revision)][not(file/prevrevision)]"/>
</xsl:call-template>
</xsl:template>
<xsl:template name="show-entries">
<xsl:param name="title"/>
<xsl:param name="entries"/>
<xsl:value-of select="$newline"/>
<xsl:value-of select="$title"/> - <xsl:value-of select="count
($entries)"/> Entries
<xsl:value-of select="$newline"/>
<xsl:apply-templates select="$entries"/>
<xsl:value-of select="$newline"/>
</xsl:template>
<xsl:template match="entry">
<xsl:apply-templates select="file"/>
</xsl:template>
<xsl:template match="file">
<xsl:value-of select="name"/>
<xsl:if test="string-length(prevrevision) > 0 or
string-length(revision) > 0">
<xsl:text/>
</xsl:if>
<xsl:if test="string-length(prevrevision) = 0 and
string-length(revision) = 0"/>
<xsl:value-of select="$newline"/>
</xsl:template>
</xsl:stylesheet>
and produces a reasonable output similar to:
Differences between DEV-030703-00E and DEV-030707-00E
New Files - 2 Entries
.cvsignore
genericWindows.txt
Modified Files - 435 Entries
na/biomerieux/brns/notification/EmailNotification.java
na/biomerieux/brns/notification/Finisher.java
na/biomerieux/brns/notification/Sender.java
na/biomerieux/brns/notification/TC_EmailErrorNotification.java
na/biomerieux/brns/notification/TC_EmailSender.java
na/biomerieux/brns/notification/TC_FaxErrorNotification.java
na/biomerieux/brns/notification/TC_Finisher.java
na/biomerieux/brns/notification/TC_NotificationEventLogger.java
inetsoft/report/Common.java
inetsoft/report/CompositeLens.java
inetsoft/report/CompositeSheet.java
inetsoft/report/Context.java
inetsoft/report/EmptyPaintable.java
inetsoft/report/FixedContainer.java
inetsoft/report/HttpPrinter.java
inetsoft/report/PDFPrinter.java
inetsoft/report/PSPrinter.java
inetsoft/report/PageArea.java
inetsoft/report/Painter.java
inetsoft/report/Presenter.java
inetsoft/report/PreviewGraphics.java
inetsoft/report/PreviewPage.java
inetsoft/report/PreviewPane.java
inetsoft/report/PreviewView.java
Removed Files - 4 Entries
GenericPropertiesInsideVA.txt
GenericPropertiesOutsideVA.txt
README.txt
generic.txt
The problem I have is trying to implement the xsl:sort command so that each
section, New Files, Modified Files and Removed Files are sorted by Alpha
.....
I tried almost every concievable structure I can think of ... I eaither
baffle the parser, fail to sort, or suceed at sorting but destroy the
format.
If someone has a solution ... I would apprecaite it very much.
Thanks
David T.
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list