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=0f8fd2e2b2a12e66d60a4df1ccb241887c324eda;hp=0000000000000000000000000000000000000000;hb=664f69cd4642ecd088df72d21228fbec81d0030d;hpb=f41ff8d936d971eb0712e458826f6555b83746da diff --git a/tests/xpath/XPathEvalSaxon.java b/tests/xpath/XPathEvalSaxon.java new file mode 100644 index 0000000..0f8fd2e --- /dev/null +++ b/tests/xpath/XPathEvalSaxon.java @@ -0,0 +1,59 @@ +//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 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; +import net.sf.saxon.type.Type; + + +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 net.sf.saxon.type.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); + }; + + + } +}