[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

RE: [xsl] XSL to analyse some XML log files


Subject: RE: [xsl] 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/


Current Thread
Keywords