Subject: RE: [xsl] Source Reducer From: "Andrew Welch" <ajwelch@xxxxxxxxxxxxxxx> Date: Mon, 6 Jun 2005 17:03:13 +0100 |
> I have a source xml which is 19MB + I'm running the > following "source reducer" template against it using the > MSXML4 parser, however it is slow (has been running well over > 2 min. now). Any suggestions on how to optimize this source > reducer template? Also, how does the ancestor match below > work, what does it do exactly? > > <xsl:strip-space elements="*"/> > > <xsl:template match="node()|@*"> > <xsl:copy> > <xsl:apply-templates select="node()|@*"/> > </xsl:copy> > </xsl:template> > > <xsl:template match="/*/*[position() > 20]"/> > > <xsl:template match="*[ancestor::*[3]]"/> The final no-op template will match any element with 3 ancestors - it means the result tree will be no more than 3 deep. To improve performance you need to replace the use of the ancestor axis with something else... but the only thing that instantly springs to mind is to use modes eg: <xsl:template match="node()|@*"> <xsl:copy> <xsl:apply-templates select="node()|@*" mode="second"/> </xsl:copy> </xsl:template> <xsl:template match="node()|@*" mode="second"> <xsl:copy> <xsl:apply-templates select="node()|@*" mode="stop"/> </xsl:copy> </xsl:template> <xsl:template match="node()" mode="stop"/> I'm sure there is a better way...
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Source Reducer, Karl Stubsjoen | Thread | RE: [xsl] Source Reducer, tomas.vanek |
[xsl] Source Reducer, Karl Stubsjoen | Date | Re: [xsl] spacing issue, Spencer Tickner |
Month |