+++ /dev/null
-import javax.xml.xpath.*;
-import org.xml.sax.*;
-import org.w3c.dom.*;
-import javax.xml.transform.*;
-import javax.xml.transform.dom.*;
-import javax.xml.transform.stream.*;
-
-public class XPathEval {
-
-
- public static void main(String args[]) {
- try {
-
-
- XPath xpath = XPathFactory.newInstance().newXPath();
- String expression = args[1];
- InputSource inputSource = new InputSource(args[0]);
- long startTime = System.nanoTime();
- NodeList nodes = (NodeList) xpath.evaluate(expression, inputSource, XPathConstants.NODESET);
- long evalTime = (System.nanoTime() - startTime) / 1000000;
- Transformer serializer = TransformerFactory.newInstance().newTransformer();
- serializer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
- StreamResult o = new StreamResult(System.out);
- startTime = System.nanoTime();
- System.out.println("<xml_result num=\"1\">");
- for(int i = 0; i < nodes.getLength(); i++){
- Node n = nodes.item(i);
- switch (n.getNodeType()) {
- case Node.ATTRIBUTE_NODE:
- System.out.print (n.getNodeName() + "=" + n.getNodeValue());
- break;
- default:
- serializer.transform(new DOMSource(nodes.item(i)), o);
- break;
- };
- System.out.println();
- };
- System.out.println("</xml_result>");
- long printTime = (System.nanoTime() - startTime) / 1000000;
- System.err.println("evaluation time: " + evalTime + "ms");
- System.err.println("serialization time: " + printTime + "ms");
- } catch (XPathException e) {
- System.out.println (e.getCause());
- } catch (Exception e) {
- System.out.println(e);
- };
-
-
- }
-}