[xsl] extrem performance break down

Subject: [xsl] extrem performance break down
From: "Szabo, Patrick (LNG-VIE)" <patrick.szabo@xxxxxxxxxxxxx>
Date: Wed, 12 Dec 2012 08:14:16 +0000
Hi,

I'm using Saxon-B 9.0.0.6 that comes with Oxygen 9 for profiling.
My Stylesheet is quite long so i don't wan't to post the whole thing but my
problems seems to reside within one template anyway.

I have the following template:

<xsl:template match="*[self::p or
self::ul][following::text()[starts-with(.,'Zum aktuellen Rechtsstand')] and
ancestor::div[@class='comm.body'] and text()][1]" priority="20">
        ***something happens***
</xsl:template>

When i change the xpath to

<xsl:template match="*[not(ancestor-or-self::span[@class='heading' and
count(preceding::span[@class='heading']) = 0])][self::p or self::ul or
self::span[not(@class='heading' and count(preceding::span[@class='heading']) =
0)]][following::text()[starts-with(.,'Zum aktuellen Rechtsstand')] and
ancestor::div[@class='comm.body'] and .//text()][1]" priority="20">
        **still same things happens**
</xsl:template>

it adds 104 seconds to the execution time. Problem is i need to change it
because otherwise it matches thing it's not supposed to.

Can anyone tell me what exactly I'm doing that is causing this performance
break ?
As soo as i revert that one change execution time goes down again.

cheers


. . . . . . . . . . . . . . . . . . . . . . . . . .
Ing. Patrick Szabo
Developer
LexisNexis
A-1030 Wien, Marxergasse 25

mailto:Patrick.Szabo@xxxxxxxxxxxxx
Tel.: +43 1 53452 1573
Fax.: +43 1 534 52 146

. . . . . . . . . . . . . . . . . . . . . . . . . .

Current Thread