0
我想使用XQJ實現來解析我的XML字符串,例如SAXON。我能找到的所有例子都涉及到一些數據庫連接。是否可以使用簡單的字符串作爲XML源?字符串作爲XQJ中的xml數據源
我想使用XQJ實現來解析我的XML字符串,例如SAXON。我能找到的所有例子都涉及到一些數據庫連接。是否可以使用簡單的字符串作爲XML源?字符串作爲XQJ中的xml數據源
撒克遜有一個XQJ接口,您可以使用XQuery的doc函數(),例如:
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作爲第二。