<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.2900.2523" name=GENERATOR></HEAD>
<BODY>
<DIV><SPAN class=094104312-09092005><FONT face=Arial size=2>I've recently been 
tinkering with the effeciency of a process I have to take an XML document and 
apply a lot of XPATH expressions to the XML. </FONT></SPAN></DIV>
<DIV><SPAN class=094104312-09092005><FONT face=Arial size=2>Here is what I've 
done to maximize the effeciency of this process. Hoping others will have other 
handy tricks up their sleeves or point out any</FONT></SPAN></DIV>
<DIV><SPAN class=094104312-09092005><FONT face=Arial size=2>glaring deficiency. 
</FONT></SPAN></DIV>
<DIV><SPAN class=094104312-09092005><FONT face=Arial 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=094104312-09092005><FONT face=Arial size=2>The basic algorithm 
of the process is this:</FONT></SPAN></DIV>
<BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px">
  <DIV><SPAN class=094104312-09092005><FONT face=Arial size=2>1. Build a Map of 
  the XPATH's to apply to the XML. </FONT></SPAN><SPAN 
  class=094104312-09092005><FONT face=Arial size=2>The xpath expression is 
  cached as org.jdom.xpath.XPath objects</FONT></SPAN></DIV>
  <DIV><SPAN class=094104312-09092005><FONT face=Arial size=2>2. For each XML 
  document to apply the Map of&nbsp;xpath expressions to</FONT></SPAN></DIV>
  <DIV><SPAN class=094104312-09092005>&nbsp;&nbsp;&nbsp; <FONT face=Arial 
  size=2>3. Build the Document object from the XML 
  string&nbsp;</FONT></SPAN></DIV>
  <DIV><SPAN class=094104312-09092005></SPAN><SPAN 
  class=094104312-09092005>&nbsp;&nbsp;&nbsp; <FONT face=Arial size=2>4. Loop 
  through the Map of XPath objects and apply each to the 
  message.</FONT></SPAN></DIV>
  <DIV><SPAN class=094104312-09092005><FONT face=Arial size=2>5 Next XML 
  document</FONT></SPAN></DIV>
  <DIV><SPAN class=094104312-09092005><FONT face=Arial 
  size=2></FONT></SPAN>&nbsp;</DIV></BLOCKQUOTE>
<DIV dir=ltr><SPAN class=094104312-09092005><FONT face=Arial 
size=2>The&nbsp;things I've done to increase performance 
are:</FONT></SPAN></DIV>
<BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px">
  <DIV dir=ltr><SPAN class=094104312-09092005><FONT face=Arial size=2>1. Cached 
  the xpath expressions as org.jdom.xpath.XPath objects</FONT></SPAN></DIV>
  <DIV dir=ltr><SPAN class=094104312-09092005><FONT face=Arial size=2>2. Ensure 
  the use of the SAXParser, 
  org.apache.xerces.parsers.SAXParser</FONT></SPAN></DIV>
  <DIV dir=ltr><SPAN class=094104312-09092005><FONT face=Arial size=2>3. Make 
  each xpath expression as effecient as possible. For example, use 
  /*/*/MyElement instead of //MyElement. </FONT></SPAN></DIV>
  <DIV dir=ltr><SPAN class=094104312-09092005><FONT face=Arial 
  size=2></FONT></SPAN>&nbsp;</DIV>
  <DIV dir=ltr><SPAN class=094104312-09092005><FONT face=Arial 
  size=2></FONT></SPAN>&nbsp;</DIV>
  <DIV dir=ltr><SPAN class=094104312-09092005><FONT face=Arial 
  size=2></FONT></SPAN>&nbsp;</DIV></BLOCKQUOTE></BODY></HTML>