Java by API/javax.xml.xpath/XPathConstants

Материал из Java эксперт
Перейти к: навигация, поиск

XPathConstants.NODE

  
import java.io.FileReader;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathFactory;
import org.w3c.dom.Attr;
import org.xml.sax.InputSource;
public class GetNameAsAttr {
  public static void main(String[] args) throws Exception {
    XPathFactory factory = XPathFactory.newInstance();
    XPath xPath = factory.newXPath();
    Attr result = (Attr) xPath.evaluate("/schedule/@name", new InputSource(
        new FileReader("tds.xml")), XPathConstants.NODE);
    System.out.println(result.getValue());
    result.setValue("The Colbert Report");
  }
}





XPathConstants.NODESET

 
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class MainClass {
  public static void main(String[] args) throws ParserConfigurationException,
      XPathExpressionException, org.xml.sax.SAXException, java.io.IOException {
    String documentName = args[0];
    String expression = args[1];
    DocumentBuilder parser = DocumentBuilderFactory.newInstance().newDocumentBuilder();
    Document doc = parser.parse(new java.io.File(documentName));
    XPath xpath = XPathFactory.newInstance().newXPath();
    System.out.println(xpath.evaluate(expression, doc));
    NodeList nodes = (NodeList) xpath.evaluate(expression, doc, XPathConstants.NODESET);
    for (int i = 0, n = nodes.getLength(); i < n; i++) {
      Node node = nodes.item(i);
      System.out.println(node);
    }
  }
}





XPathConstants.NUMBER

  

import java.io.FileReader;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathFactory;
import org.xml.sax.InputSource;
public class GetSeriesId {
  public static void main(String[] args) throws Exception {
    XPathFactory factory = XPathFactory.newInstance();
    XPath xPath = factory.newXPath();
    Double result = (Double) xPath.evaluate("/schedule/@seriesId", new InputSource(new FileReader(
        "tds.xml")), XPathConstants.NUMBER);
    System.out.println(result.intValue());
  }
}