I am new to the XML/XSL world, I hope the terminology of the subject line
correctly reflects my problem. I am using 1.0 and can not use 2.0. All client
machines will use IE6 on Windows XP machines to view the report. I can not
alter the XML output/format. I can only create an XSL to show the data in a
report.
I have read and tried many examples this week concerning the Muenchian method.
The examples are good but the XML format used in the examples seems simpler
than the format I am using. I have made great effort in altering Jenni
Tennison's example. The best I can do for output is based on this example
http://www.zvon.org/xxl/XSLTreference/OutputOverview/xslt_key_frame.html
However it does not group.
What I need is to group by (and sort) the valve number, list the inspections
for that valve sorted by the most recent date (if sort by a date is possible).
For example:
ValveNumber: 992
DateInspected1 InspectedBy1 RepairsMade1 ...
DateInspected2 InspectedBy2 ReapirsMade2 ...
ValveNumber: 993
DateInspected1 InpsectedBy1 ReapirsMade1 ...
Some of the hurdles I need to overcome are how to assign the correct variables
for the Key and properly format the Count or GenerateID method as described in
Jenni's examples.
Some of my efforts:
<xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version =
"1.0" >
<xsl:output method = "text" />
<xsl:key name = "keyFacilityID" match = "ObjectClassField" use =
"@name" />
<xsl:template match = "/" >
<xsl:apply-templates select =
"ObjectClassField[count(.| key('keyFacilityID','Valve
Number')[1])=1]"><!--"key('keyFacilityID','Valve Number')"-->
<xsl:sort/>
</xsl:apply-templates>
</xsl:template>
<xsl:template match = "ObjectClassField" >
<xsl:text >
</xsl:text>
<xsl:value-of select = "@name"/>
<xsl:text >
</xsl:text>
<xsl:value-of select = "." />
</xsl:template>
</xsl:stylesheet>
*********************
<xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version =
"1.0" >
<xsl:output method = "text" />
<xsl:variable name="varFaciltyID"
select="//GeodatabaseRelationships/ObjectClass/ObjectClassRows/ObjectClassRow/ObjectClassField/@name"/>
<!--xsl:variable name="ns2" select="wrapper/st[(_at_)ns2]"/-->
<xsl:key name="target-node-set"
match="//GeodatabaseRelationships/ObjectClassRows/ObjectClassRow/ObjectClassField"
use="."/>
<xsl:template match="/">
Valve:
<xsl:for-each select="$varFacilityID">
"<xsl:value-of select="."/>"
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
************
The XML data:
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type='text/xsl' href='C:\GISData\MobileConfiguration\Valve
Report.xsl'?>
<ReportDefinition>
<ReportObject name="gasValve">
<ObjectClass name="Gas Valve">
<ObjectClassFieldDefinition />
<ObjectClassRows>
<ObjectClassRow OBJECTID="41676" />
<ObjectClassRow OBJECTID="41677" />
</ObjectClassRows>
</ObjectClass>
<GeodatabaseRelationships>
<ObjectClass name="GVALVEINSPECTION">
<ObjectClassFieldDefinition>
<FieldDefinition>Valve Number</FieldDefinition>
<FieldDefinition>Date Inspected</FieldDefinition>
<FieldDefinition>Inspected By</FieldDefinition>
<FieldDefinition>Repairs Made</FieldDefinition>
<FieldDefinition>Valve Position Found</FieldDefinition>
<FieldDefinition>Valve Position Left</FieldDefinition>
<FieldDefinition>Notes</FieldDefinition>
</ObjectClassFieldDefinition>
<ObjectClassRows>
<ObjectClassRow OBJECTID="629">
<ObjectClassField name="Valve Number">993</ObjectClassField>
<ObjectClassField name="Date
Inspected">01/31/2000</ObjectClassField>
<ObjectClassField name="Inspected By">Wingenbach</ObjectClassField>
<ObjectClassField name="Repairs Made">N</ObjectClassField>
<ObjectClassField name="Valve Position Found" />
<ObjectClassField name="Valve Position Left" />
<ObjectClassField name="Notes" />
</ObjectClassRow>
<ObjectClassRow OBJECTID="1626">
<ObjectClassField name="Valve Number">993</ObjectClassField>
<ObjectClassField name="Date
Inspected">02/28/2001</ObjectClassField>
<ObjectClassField name="Inspected By">Ukweli</ObjectClassField>
<ObjectClassField name="Repairs Made">N</ObjectClassField>
<ObjectClassField name="Valve Position Found" />
<ObjectClassField name="Valve Position Left" />
<ObjectClassField name="Notes" />
</ObjectClassRow>
<ObjectClassRow OBJECTID="1697">
<ObjectClassField name="Valve Number">992</ObjectClassField>
<ObjectClassField name="Date
Inspected">03/13/2002</ObjectClassField>
<ObjectClassField name="Inspected By">Ukweli</ObjectClassField>
<ObjectClassField name="Repairs Made">N</ObjectClassField>
<ObjectClassField name="Valve Position Found" />
<ObjectClassField name="Valve Position Left" />
<ObjectClassField name="Notes" />
</ObjectClassRow>
<ObjectClassRow OBJECTID="1212">
<ObjectClassField name="Valve Number">992</ObjectClassField>
<ObjectClassField name="Date
Inspected">03/22/1989</ObjectClassField>
<ObjectClassField name="Inspected By">Wingenbach</ObjectClassField>
<ObjectClassField name="Repairs Made">N</ObjectClassField>
<ObjectClassField name="Valve Position Found" />
<ObjectClassField name="Valve Position Left" />
<ObjectClassField name="Notes" />
</ObjectClassRow>
</ObjectClassRows>
</ObjectClass>
</GeodatabaseRelationships>
</ReportObject>
</ReportDefinition>
--~------------------------------------------------------------------
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>
--~--