RE: [xsl] Filtering XML to improve performance

Subject: RE: [xsl] Filtering XML to improve performance
From: "Andrew Welch" <AWelch@xxxxxxxxxxxxxxx>
Date: Mon, 22 Mar 2004 09:28:34 -0000
> <root>
> 	<items>
> 		<onlyImportantItem>THIS</onlyImportantItem>
> 		<junkItem>foo</junkItem>
> 		<moreJunk>foo</moreJunk>
> 		<stillMoreJunk>foo</stillMoreJunk>
> 	</items>
> 	<items>
> 		<onlyImportantItem>THAT</onlyImportantItem>
> 		<junkItem>foo</junkItem>
> 		<moreJunk>foo</moreJunk>
> 		<stillMoreJunk>foo</stillMoreJunk>
> 	</items>
> 	...
> 	...
> 	...
> </root>
> 
> 
> If I only mainly want to work with <onlyImportantItems>, is 
> there a way that I can filter out all the other data I don't 
> need when I do the transform?
> 
> So for instance, I don't want the XML parser searching 
> through all the garbage, I want it cut down to just the data 
> I need.  Can I do something like this at the beginning of all 
> my xsl sheets?

One way is to use a SAXFilter in java to only 'pass through' the
elements you want.  That way the xslt processor will only receive a
document that looks like:

 <root>
  <items>
    <onlyImportantItem>THIS</onlyImportantItem>
  </items>
  <items>
    <onlyImportantItem>THAT</onlyImportantItem>
  </items>
  ...

This filtering pretty much costs nothing and you will end up with a much
smaller input document, which reduces memory use and increases speed.

cheers
andrew 

Current Thread