Java evaluate xpath on dom

In Java, you can use the Document Object Model (DOM) API to create a DOM tree from an XML document, and then use the XPath API to evaluate XPath expressions on the DOM tree.

Here's an example of how to evaluate an XPath expression on a DOM tree in Java:

ref‮i:ot re‬giftidea.com
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import javax.xml.xpath.*;

public class XPathExample {
  public static void main(String[] args) throws Exception {
    // Create a DOM builder
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    DocumentBuilder builder = factory.newDocumentBuilder();
    
    // Parse the XML document into a DOM tree
    Document doc = builder.parse("example.xml");
    
    // Create an XPath object
    XPathFactory xpathFactory = XPathFactory.newInstance();
    XPath xpath = xpathFactory.newXPath();
    
    // Compile the XPath expression
    XPathExpression expr = xpath.compile("//book[author='Neal Stephenson']/title/text()");
    
    // Evaluate the XPath expression against the DOM tree
    Object result = expr.evaluate(doc, XPathConstants.NODESET);
    
    // Process the result
    NodeList nodes = (NodeList) result;
    for (int i = 0; i < nodes.getLength(); i++) {
      System.out.println(nodes.item(i).getNodeValue());
    }
  }
}

In this example, we first create a DOM tree from an XML document using a DocumentBuilder object. We then create an XPath object and compile an XPath expression. The XPath expression in this example selects the titles of all books whose author is "Neal Stephenson".

We then evaluate the XPath expression against the DOM tree using the evaluate() method of the XPath object. The second argument to the evaluate() method specifies the type of result we expect. In this example, we expect a NODESET result, which is a list of nodes that match the XPath expression.

Finally, we process the result by iterating over the list of nodes and printing their values.

Note that this example uses the javax.xml.xpath package, which is available in Java 5 and later. If you are using an earlier version of Java, you will need to use a third-party XPath library such as Jaxen or Xalan-J.