2010-06-24 64 views
0

我怎么执行一个简单的XQuery这样,像这样的如何在java中使用saxon 9.2he设置xquery上下文文件?

for $elem in /root/element() 
return 
    $elem 

使用Java的XML文件,而无需使用FN:DOC?

总是收到 XPDY0002:轴步骤孩子的上下文项::组件(xml,XS:anyType的)是未定义

--the概要:我需要一个简单的解决方案,以加载XML文件,负载一个xquery和过程

回答

0

这里是我找到的最简单的方法,但我希望使用XQStaticContext将contextDocument“绑定”到表达式。

XQDataSource ds = new SaxonXQDataSource(); 
XQConnection xqjc = ds.getConnection(); 
XQPreparedExpression xqje = xqjc.prepareExpression(new FileInputStream("xml\\foo.xquery")); 

XMLInputFactory factory = XMLInputFactory.newInstance(); 
XMLStreamReader streamReader = factory.createXMLStreamReader(new FileReader("xml\\foo.xml")); 

xqje.bindDocument(XQConstants.CONTEXT_ITEM,streamReader, xqjc.createDocumentType()); 

XQResultSequence xqjs = xqje.executeQuery(); 

xqjs.writeSequence(System.out, null); 
相关问题