Friend, Darris E schrieb:
I am using 1.0 and can not use 2.0. [...] I can not alter the XML
output/format.
The verbosity and redundancy of the XML vocabulary you have to deal with
makes this a bit tedious.
The following produces more or less the desired output:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:key
name="valves-by-number"
match="ObjectClassField[ @name = 'Valve Number']"
use="."/>
<xsl:key
name="inspections-by-valve-number"
match="GeodatabaseRelationships/ObjectClass/ObjectClassRows/ObjectClassRow"
use="ObjectClassField[ @name = 'Valve Number']"/>
<xsl:template match="/">
<xsl:for-each select="
/*/*/GeodatabaseRelationships
//ObjectClassField[ @name = 'Valve Number']">
<xsl:sort select="." data-type="number"/>
<xsl:if test="
generate-id() =
generate-id( key( 'valves-by-number', .)[1])">
<xsl:text>Valve Number: </xsl:text>
<xsl:value-of select="."/>
<xsl:text> </xsl:text>
<!-- inspections -->
<xsl:for-each select="key( 'inspections-by-valve-number', .)">
<xsl:sort select="concat(
substring( ObjectClassField[ @name = 'Date Inspected'], 6, 4),
substring( ObjectClassField[ @name = 'Date Inspected'], 1, 2),
substring( ObjectClassField[ @name = 'Date Inspected'], 4, 2))"/>
<xsl:apply-templates select="."/>
</xsl:for-each>
</xsl:if>
</xsl:for-each>
</xsl:template>
<xsl:template match="ObjectClassRow">
<!-- Extend this to display more information. -->
<xsl:value-of select="ObjectClassField[ @name = 'Date Inspected']"/>
<xsl:text> </xsl:text>
</xsl:template>
</xsl:stylesheet>
I would be nice to be able to use a variable in the xsl:sort that
rearranges the date as in:
<xsl:variable
name="d" select="ObjectClassField[ @name = 'Date Inspected']"/>
<xsl:sort select="concat( substring( $d, 6, 4)), ... "/>
But that is not possible. If MSXML for IE6 has EXSLT or another
extension function facility, you could use that to write a function
to rearrange the date and then sort by select="my:iso-date( $d)".
Michael Ludwig
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--