|
[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
[Recent Entries]
[Reply To This Message]
Re: Expensive XSLT2 - suggestions for improving?
Subject: Re: Expensive XSLT2 - suggestions for improving?
From: Michael Müller-Hillebrand <mmh@xxxxxxxxxxxxx>
Date: Thu, 16 Oct 2008 21:11:24 +0200
|
Thanks a lot!
Right after putting together the test case I tried some xsl:key
myself... I should have done it before.
Your method of integrating the check into a common template with the
'first' node as a variable serves another purpose: I need multiple
attribute values from that node to construct my unique identifier.
For my 20 MByte XML file, the processing is now down from 42 minutes
(!) to 6 seconds. This is more than 99% percent saved just because of
a xsl:key!
Thanks again,
- Michael
Am 16.10.2008 um 18:03 schrieb David Carlisle:
something like this:
<xsl:key name="v" match="value" use="."/>
<xsl:template match="value">
<xsl:copy>
<xsl:apply-templates select="@*"/>
<xsl:variable name="first" select="key('v',')[1]"/>
<xsl;choose>
<xsl:when test=". is $first">
<xsl:attribute name="refoid" select="$first/@oid"/>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates/>
</xsl:otherwise>
</xsl:choose>
</xsl:copy>
</xsl:template>
if you need to do same in xslt1 then
. is $first
becomes
generate-id(.) = generate-id($first)
and
<xsl:attribute name="refoid" select="$first/@oid"/>
becomes
<xsl:attribute name="refoid"><xsl:value-of select="$first/@oid"/
></xsl:attribute>
David
--
_______________________________________________________________
Michael M|ller-Hillebrand: Dokumentations-Technologie
Adobe Certified Expert, FrameMaker
Lvsungen und Training, FrameScript, XML/XSL, Unicode
<http://cap-studio.de/> -- Tel. +49 (9131) 28747

|
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format
| RSS 2.0 |
|
| Atom 0.3 |
|
|