> Under the covers, does this go over the XPathApi? It's not layered on top of the XPathAPI, but it is built using same internal XPath APIs from Xalan.
Ilene. ------ Christopher Giblin/Zurich/IBM To: [EMAIL PROTECTED] @IBMCH cc: Subject: Re: usage of XPath 06/27/2003 11:51 AM I have been using the DOM Level 3 XPath support in Xerces 2.5 for boolean matching and am quite happy with it. Under the covers, does this go over the XPathApi? Sorry - no time to look at the source :( -chris Joaquín Sánchez Jiménez <[EMAIL PROTECTED] To > "Siljan Simpson" <[EMAIL PROTECTED]>, 06/26/2003 07:54 <[EMAIL PROTECTED]> PM cc Subject Re: usage of XPath Hi again: This is the original source code for: public XObject eval( Node contextNode, String str, PrefixResolver prefixResolver) throws TransformerException XPath xpath = new XPath(str, null, prefixResolver, XPath.SELECT, null); // Execute the XPath, and have it return the result XPathContext xpathSupport = new XPathContext(); int ctxtNode = xpathSupport.getDTMHandleFromNode(contextNode); return xpath.execute(xpathSupport, ctxtNode, prefixResolver); } First at all add a Hashtable to the object, for exmaple: private final Hashtable ctxts = new Hashtable(); Then public XObject eval( Node contextNode, String str, PrefixResolver prefixResolver) throws TransformerException XPath xpath = null; if(ctxts.get(new Integer(prefixResolver.hashCode())) == null) { xpath = new XPath(str, null, prefixResolver, XPath.SELECT, null); ctxts.put(new Integer(prefixResolver.hashCode()), xpath); } else { xpath = (XPath)ctxts.get(prefixResolver.hashCode()); } // Execute the XPath, and have it return the result XPathContext xpathSupport = new XPathContext(); int ctxtNode = xpathSupport.getDTMHandleFromNode(contextNode); return xpath.execute(xpathSupport, ctxtNode, prefixResolver); } What compile the expression is XPath object, so you must cache this object via its prefix resolver. See XPath source code to see how it works. Bye. J. ----- Original Message ----- From: "Siljan Simpson" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Thursday, June 26, 2003 7:24 PM Subject: Re: usage of XPath > Thanks for the response. > > CachedXPathAPI generates the classes needed for XPathContext (DTMManager and DTMs). But if I use the same XPath repeatedly, the XPath is compiled everytime and not cached. > > Is there someway I can reuse the compiled-XPath ? > > -Siljan > > > ----- Original Message ----- > From: Joaquín_Sánchez_Jiménez <[EMAIL PROTECTED]> > Date: Thu, 26 Jun 2003 19:06:39 +0200 > To: "Siljan Simpson" <[EMAIL PROTECTED]>, <[EMAIL PROTECTED]> > Subject: Re: usage of XPath > > > Hi: > > > > XPath API is slow because each time you invoke it it must compile the > > expression (in fact must get a XPathContext). CachedXPathAPI can be used > > along the time while the node to parse not change. So first time is slow > > (the same as XPathAPI) but next calls this class not need to recompile the > > expression. > > > > Read CachedXPathAPI javadoc API. > > > > You can see an samples looking in XPathAPI source code. > > > > Bye. > > > > J. > > > > ----- Original Message ----- > > From: "Siljan Simpson" <[EMAIL PROTECTED]> > > To: <[EMAIL PROTECTED]> > > Sent: Thursday, June 26, 2003 6:32 PM > > Subject: usage of XPath > > > > > > > Hi, > > > > > > I am working on a project using XML. Presently we are using CachedXPathAPI > > to get a Node based on the XPath evaluation. From the documentation I > > understand that this method is slow and compiling the XPath will be > > efficient. > > > > > > Does anyone have a sample code on how the XPath can be compiled and used > > to extract nodes ? > > > > > > Any pointers will be appreciated. > > > > > > Thanks, > > > Siljan > > > -- > > > __________________________________________________________ > > > Sign-up for your own FREE Personalized E-mail at Mail.com > > > http://www.mail.com/?sr=signup > > > > > > > > > > -- > __________________________________________________________ > Sign-up for your own FREE Personalized E-mail at Mail.com > http://www.mail.com/?sr=signup > >