字符串为XQJ中的XML数据源



我想使用XQJ实现(例如撒克逊)来解析XML字符串。我可以找到的所有示例参考一些数据库连接。是否可以将简单字符串用作XML源?

萨克森具有XQJ接口,您可以使用Xquery的doc function(),例如:

XQDataSource ds = new SaxonXQDataSource();
XQConnection conn = ds.getConnection();
XQPreparedExpression exp = conn.prepareExpression("doc('file:/some/file.xml')/child::node()");
XQResultSequence result = exp.executeQuery();
while(result.next()) {
    System.out.println(result.getItemAsString(null));
}

或直接将XML注入查询中。例如 -

XQDataSource ds = new SaxonXQDataSource();
XQConnection conn = ds.getConnection();
XQPreparedExpression exp = conn.prepareExpression("<a><b>test</b></a>/child::node()");
XQResultSequence result = exp.executeQuery();
while(result.next()) {
    System.out.println(result.getItemAsString(null));
}

尝试使用

void    XQExpression.bindDocument(javax.xml.namespace.QName varName, javax.xml.transform.Source value, XQItemType type) 

以xqconstants.context_item作为第一个参数,而streamsource将StringReadeer包裹为第二个。

相关内容

  • 没有找到相关文章

最新更新