X-Git-Url: http://git.nguyen.vg/gitweb/?p=tatoo.git;a=blobdiff_plain;f=tests%2FXPathEval.java;fp=tests%2FXPathEval.java;h=8ce8db1f15d7368d3a4007d81ea22932603cf194;hp=0000000000000000000000000000000000000000;hb=363f60ac01d819bf2b4bf57d72be05e7b9372c1a;hpb=664f69cd4642ecd088df72d21228fbec81d0030d diff --git a/tests/XPathEval.java b/tests/XPathEval.java new file mode 100644 index 0000000..8ce8db1 --- /dev/null +++ b/tests/XPathEval.java @@ -0,0 +1,50 @@ +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(""); + 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(""); + 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); + }; + + + } +}