0

我如何执行一个简单的this xquery,例如this

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

在使用 java 而不使用 fn:doc 的 xml 文件上?

我不断收到 XPDY0002:轴步子的上下文项::元素(xml,xs:anyType)未定义

--概要:我需要一个简单的解决方案来加载 xml 文件、加载 xquery 和处理

4

1 回答 1

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);
于 2010-06-24T17:45:04.240 回答