Subject: RE: XSL to analyse some XML log files
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Sun, 4 Dec 2005 09:05:43 -0000
|
> I would like to do the following and hope that you can help me:
>
> 1) Generate another XML file that does not contain logs
> (<log> tag defines a
> log) that belong to the test mode (<change> tag with value
> "mode TEST").
> That means all log files between the test mode and any other mode.
<xsl:copy-of select="log[not(change='TEST' or (not(change) and
(preceding-sibling::log/change)[last()]='TEST')))]"/>
>
> 2) Generate one XML file for each mode, one for "mode TEST",
> one of "mode
> A", one for "mode B") with all the logs that belong to each
> mode. That means
> e.g. that all the logs after <change>mode B</change> are
> stored into the
> "mode B" file, equeally for the others.
This is a classic grouping problem (www.jenitennison.com/xslt/grouping) in
which the grouping key is the most recent CHANGE element, calculated as
above. In XSLT 2.0
<xsl:for-each-group select="log"
group-by="((.|preceding-sibling::log)/change)[last()]"/>
>
> 3) Calcuate the time difference in seconds (<time> value is
> also provide in
> seconds) between the <useraction>Start</useraction> and the
> <useraction>Stop</useraction> of the "mode A".
>
I'll pass on that one, got to be off to Mass.
Michael Kay
http://www.saxonica.com/
|