Java by API/javax.xml.xpath/XPathConstants

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

XPathConstants.NODE

   <source lang="java">
 

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");
 }

}


 </source>
   
  
 
  



XPathConstants.NODESET

   <source lang="java">

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);
   }
 }

}


 </source>
   
  
 
  



XPathConstants.NUMBER

   <source lang="java">
 

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());
 }

}


 </source>