Parsing single XPath Expression multiple times in an XML
suggest changeIn this case, you want to have the expression compiled before the evaluations, so that each call to evaluate
does not compile
the same expression. The simple syntax would be:
XPath xPath = XPathFactory.newInstance().newXPath(); //Make new XPath
XPathExpression exp = xPath.compile("/documentation/tags/tag[@name='Java']//example");
DocumentBuilder builder = DocumentBuilderFactory.newInstance();
Document doc = builder.parse(new File("path/to/xml.xml")); //Specify XML file path
NodeList javaExampleNodes = (NodeList) exp.evaluate(doc, XPathConstants.NODESET); //Evaluate the XPath from the already-compiled expression
NodeList javaExampleNodes2 = (NodeList) exp.evaluate(doc, XPathConstants.NODESET); //Do it again
Overall, two calls to XPathExpression.evaluate()
will be much more efficient than two calls to XPath.evaluate()
.
Found a mistake? Have a question or improvement idea?
Let me know.
Table Of Contents