Try to set the context into lenient mode: http://jakarta.apache.org/commons/jxpath/apidocs/org/apache/commons/jxpath/J XPathContext.html#setLenient(boolean)
JXPathContext ctxt = JXPathContext.newContext(root); ctxt.setLenient(true); Dmitry -----Original Message----- From: Venkatesh Prasad Ranganath [mailto:[EMAIL PROTECTED] Sent: Wednesday, March 26, 2003 3:33 PM To: Jakarta Commons Users List Subject: Re: JXPath: XMl traversal Venkatesh Prasad Ranganath wrote: > Dmitri Plotnikov wrote: > >> Venkatesh, >> >> Try passing to the JXPathContext the document itself, rather than its >> root >> element. I believe JXPath is trying to find a child of the root element >> called "CONFIGURATION", but of course fails to find one. >> >> I hope this helps. > > > Nope. I tried passing the document. I also tried giving the root > element and "//PROCESSOR" as the xpath expression. Both had no result > as in the previous case. Any clues? > Well, sorry for the mispost. There was a class version issue and things are resolved now. However, context.getValue("INTERVAL_TIMEOUT") != null throws an exception rather than returning null as there may be no element with tag name "INTERVAL_TIMEOUT". I have tried getPointer() with the same effect. Any clues why this might occur? It is my understanding that one can test for optional elements by providing an xpath expression and if that evaluates to null then one can conclude that the element does not exists. Is this correct? If not, how should one test for existence of optional elements? waiting for reply, >> >> - Dmitri Plotnikov >> >> ----- Original Message ----- >> From: "Venkatesh Prasad Ranganath" <[EMAIL PROTECTED]> >> To: <[EMAIL PROTECTED]> >> Sent: Wednesday, March 26, 2003 8:04 AM >> Subject: JXPath: XMl traversal >> >> >> >>> Hi, >>> >>> The following snippet of code never dives into loop body for the >> >> >> subsequent document. Can somebody tell me what might I be >> >>> doing wrong? >>> >>> <doc is a Document object obtained from jaxp parser> >>> Element root = doc.getDocumentElement(); >>> JXPathContext ctxt = JXPathContext.newContext(root); >>> for(Iterator i = ctxt.iterate("CONFIGURATION/PROCESSOR"); >>> i.hasNext();) { >>> System.out.println("1"); >>> processProcessor((Element) i.next()); >>> } >>> >>> >>> <?xml version="1.0" encoding="UTF-8"?> >>> <!-- DOCTYPE CONFIGURATION SYSTEM "MC__1_1BasicSP.dtd"--> >>> <!DOCTYPE CONFIGURATION SYSTEM "OEP_Configuration_2_2.dtd"> >>> <CONFIGURATION> >>> <PROCESSOR> >>> <NAME> PROCESSOR1 </NAME> >>> </PROCESSOR> >>> </CONFIGURATION> >>> >>> waiting for reply, >>> -- >>> >>> Venkatesh Prasad Ranganath, >>> Dept. Computing and Information Science, >>> Kansas State University, US. >>> web: http://www.cis.ksu.edu/~rvprasad >>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: [EMAIL PROTECTED] >>> For additional commands, e-mail: [EMAIL PROTECTED] >>> >>> >>> >> >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] >> >> > > -- Venkatesh Prasad Ranganath, Dept. Computing and Information Science, Kansas State University, US. web: http://www.cis.ksu.edu/~rvprasad --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] NOTICE: This communication may contain proprietary or other confidential business information of Orcom Solutions, Inc. If you are not the intended recipient or believe that you may have received this communication in error, please reply to the sender indicating that fact and delete the copy you received. In addition, you should not print, copy, retransmit, disseminate, or otherwise use the information. Thank you.
