Looking for java Keywords? Try Ask4Keywords

Java Language Разбор одного выражения XPath несколько раз в XML


пример

В этом случае вы хотите, чтобы выражение было скомпилировано перед оценками, поэтому каждый вызов для evaluate не compile одно и то же выражение. Простым синтаксисом будет:

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

В целом, два вызова XPathExpression.evaluate() будут намного эффективнее, чем два вызова XPath.evaluate() .