package org.basex.examples.xqj.cfoster;
import java.io.*;
import javax.xml.xquery.*;
/**
* XQJ Example, derived from the XQJ Tutorial
* <a href="http://www.cfoster.net/articles/xqj-tutorial">
* http://www.cfoster.net/articles/xqj-tutorial</a> from Charles Foster.
*
* Part 2: Executing XQuery in Java.
*
* @author BaseX Team 2005-17, BSD License
*/
public final class Part2 extends Main {
/**
* Main method of the example class.
* @param args (ignored) command-line arguments
* @throws Exception exception
*/
public static void main(final String... args) throws Exception {
init("2: Executing XQuery in Java");
// Create the connection
XQConnection conn = connect();
// Return book titles from 'books.xml'
info("Return book titles from 'books.xml'");
String path = new File("src/main/resources/xml").getAbsolutePath();
String xqueryString =
"for $x in doc('" + path + "/books.xml')//book " +
"return $x/title/text()";
XQExpression xqe = conn.createExpression();
XQResultSequence rs = xqe.executeQuery(xqueryString);
while(rs.next())
System.out.println(rs.getItemAsString(null));
// Get book prices
info("Get book prices");
xqueryString =
"for $x in doc('" + path + "/books.xml')//book " +
"return xs:float($x/price)";
rs = xqe.executeQuery(xqueryString);
while(rs.next()) {
float price = rs.getFloat();
System.out.println("price = " + price);
}
conn.close();
// Closing connection to the Database.
close(conn);
}
}