// You can redistribute this software and/or modify it under the terms of
// the Infozone Software License version 2 published by the Infozone Group
// (http://www.infozone-group.org).
//
// Copyright (C) @year@ by The Infozone Group. All rights reserved.
//
// $Id: XPathTest.java,v 1.1 2002/05/10 08:59:12 per_nyfelt Exp $
package org.infozone.tools.xml.queries.test;
import org.w3c.dom.Document;
import org.w3c.dom.DocumentFragment;
import org.w3c.dom.NodeList;
import org.infozone.tools.xml.queries.*;
import javax.xml.parsers.*;
/**
* @version $Revision: 1.1 $ $Date: 2002/05/10 08:59:12 $
* @author <a href="http://www.softwarebuero.de">SMB</a>
*/
public class XPathTest {
public static void main( String[] args ) throws Exception {
// System.getProperties().put( "org.infozone.tools.xml.queries.XPathQueryFactory",
// "org.infozone.tools.xml.queries.xt.XPathQueryFactoryImpl");
XPathQueryFactory factory = XPathQueryFactory.newInstance();
DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = builderFactory.newDocumentBuilder();
Document doc = docBuilder.parse( args[0] );
long start = System.currentTimeMillis();
XPathQuery query = factory.newXPathQuery();
System.out.println( query.getClass().getName() );
query.setQString( "/*" );
System.out.println( "init: " + (System.currentTimeMillis()-start) );
start = System.currentTimeMillis();
XObject result = query.execute( doc );
System.out.println( "execute: " + (System.currentTimeMillis()-start) );
printResult( result );
result = query.execute( doc );
printResult( result );
}
protected static void printResult( XObject result ) throws Exception {
if (result == null) {
System.out.println( "XPath query: result: null" );
}
else {
System.out.print( "XPATH query: result: " );
// cast the query result to
switch (result.getType()) {
case XObject.CLASS_BOOLEAN:
System.out.println( "(Boolean): " + result.bool() );
break;
case XObject.CLASS_NUMBER:
System.out.println( "(Number): " + result.num() );
break;
case XObject.CLASS_STRING:
System.out.println( "(String): " + result.str() );
break;
case XObject.CLASS_RTREEFRAG:
System.out.println( "(DocumentFragment): -" );
break;
case XObject.CLASS_NODESET:
NodeList nodeList = result.nodeset();
System.out.println( "(NodeList): " + nodeList.getLength() + " Entries" );
for (int i = 0; i < nodeList.getLength(); i++) {
System.out.print( i + 1 + " Entry: " );
System.out.println( " value=" + nodeList.item( i ).getNodeName() );
}
break;
default:
System.out.println( "(Unknown): -" );
break;
}
}
}
}
|