如何执行一个简单的xquery,例如这个
for $elem in /root/element()
return
$elem
使用java而不使用fn:doc?的xml文件上的
我一直在努力 XPDY0002:轴步子:: element(xml,xs:anyType)的上下文项未定义
- 纲要:我需要一个简单的解决方案来加载xml文件,加载xquery和进程
答案 0 :(得分: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);