X-Git-Url: http://git.nguyen.vg/gitweb/?p=tatoo.git;a=blobdiff_plain;f=tests%2Fxpath%2FXPathEvalSaxon.java;fp=tests%2Fxpath%2FXPathEvalSaxon.java;h=6d1d6e61baaf7b19dd67009ad114f03156afbb32;hp=0000000000000000000000000000000000000000;hb=3fadb034bfc0075d420bdd1383214014500501b8;hpb=c5fc33c2eda7c2bb45c3bafbe74827f17e215fb8 diff --git a/tests/xpath/XPathEvalSaxon.java b/tests/xpath/XPathEvalSaxon.java new file mode 100644 index 0000000..6d1d6e6 --- /dev/null +++ b/tests/xpath/XPathEvalSaxon.java @@ -0,0 +1,58 @@ +//import javax.xml.xpath.*; +import javax.xml.xpath.XPathConstants; +import javax.xml.xpath.XPath; +import javax.xml.xpath.XPathException; +import net.sf.saxon.xpath.XPathFactoryImpl; +import net.sf.saxon.om.NodeInfo; +import net.sf.saxon.type.Type; +import org.xml.sax.*; +import org.w3c.dom.*; +import javax.xml.transform.*; +import javax.xml.transform.dom.*; +import javax.xml.transform.stream.*; +import java.util.ArrayList; + +public class XPathEvalSaxon { + + + public static void main(String args[]) { + try { + + + XPath xpath = (new XPathFactoryImpl()).newXPath(); + String expression = args[1]; + InputSource inputSource = new InputSource(args[0]); + long startTime = System.nanoTime(); + @SuppressWarnings("unchecked") + ArrayList nodes = (ArrayList) 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.size(); i++){ + NodeInfo n = nodes.get(i); + switch (n.getNodeKind()) { + case Type.ATTRIBUTE: + System.out.print (n.getLocalPart() + "=" + n.getStringValue()); + break; + default: + serializer.transform(n, 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); + }; + + + } +}