|
View:
New views
3 Messages
—
Rating Filter:
Alert me
|
|
|
How can i get line numbers for each result returned in XQuery.Hi,
I am trying to use net.saxon.xqj package for Xquery. I am using the result Sequence to get Item as Stream and then get its location. But I am getting -1 everytime. Please help, should i use s9Api or i can get line number through Xqj also. public void runQuery() { try { SaxonXQConnection con = (SaxonXQConnection) xqueryConnection.getConnection(); con.getStaticContext().declareNamespace("xbrli", "http://www.xbrl.org/2003/instance"); con.getStaticContext().declareNamespace("bvf", "http://www.biovail.com/2008-12-31"); con.getStaticContext().declareNamespace("xsi", "http://www.w3.org/2001/XMLSchema-instance"); con.getStaticContext().declareNamespace("xlink", "http://www.w3.org/1999/xlink"); con.getStaticContext().setDefaultElementTypeNamespace("http://www.xbrl.org/2003/linkbase"); con.getStaticContext().setDefaultElementTypeNamespace("http://www.w3.org/2001/XMLSchema"); String queryFile="for $s in fn:doc(\"C:/Users/A/Documents/Sweta/users/sweta231119791251796126671/Other/2008/Quarterly/2nd Quarterly/bvf-20081231/bvf-20081231.xml\")" + "//bvf:StockholdersEquityBeforeComprehensiveIncomeNetOfTax, "+ " $c in fn:doc(\"C:/Users/A/Documents/Sweta/users/sweta231119791251796126671/Other/2008/Quarterly/2nd Quarterly/bvf-20081231/bvf-20081231.xsd\")" + "//element[@name=local-name($s)] "+ " return($s, data($c/@name))"; SaxonXQPreparedExpression expr = (SaxonXQPreparedExpression) con.prepareExpression(queryFile); SaxonXQForwardSequence rs = (SaxonXQForwardSequence) expr.executeQuery(); while (rs.next()) { SaxonXQItem item = (SaxonXQItem) rs.getItem(); Location local = item.getItemAsStream().getLocation(); System.out.println(item.getItemAsString(null).toString() + " at Line: " + local.getLineNumber()); } / rs.close(); con.close(); } catch (javax.xml.xquery.XQException xq) { xq.printStackTrace(); System.out.println(xq.getStackTrace().toString()); } catch (Exception ex) { ex.printStackTrace(); } } } ------------------------------------------------------------------------------ Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference _______________________________________________ saxon-help mailing list archived at http://saxon.markmail.org/ saxon-help@... https://lists.sourceforge.net/lists/listinfo/saxon-help |
|
|
Re: How can i get line numbers for each result returned inXQuery.First you need to ensure that line numbers are maintained when
Saxon builds document trees using the doc() function. You can do this by calling
setRetainLineNumbers() on the SaxonXQDataSource object.
In your result, your query is returning alternate nodes and
atomic values. To get the line number of a node, you have to escape from XQJ
into Saxon interfaces: call getSaxonItem() on the XdmItem(), and if it is a
node, the result will be an instance of net.sf.saxon.om.NodeInfo, which has a
getLineNumber() method.
Generally, unless you want the portability benefits that come from
using XQJ (that is, you want to write applications that work with multiple
XQuery engines), I would recommend writing Saxon applications using the s9api
interface. It provides access to more of Saxon's capabilities, and is a better
fit to Saxon's architecture. However, I've tried to provide "escape hatches" so
that you can escape from XQJ interfaces into lower level Saxon interfaces when
necessary.
Regards,
------------------------------------------------------------------------------ Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference _______________________________________________ saxon-help mailing list archived at http://saxon.markmail.org/ saxon-help@... https://lists.sourceforge.net/lists/listinfo/saxon-help |
|
|
|
| Free embeddable forum powered by Nabble | Forum Help |