2014-01-24 23 views
0

我想使用XQJ實現來解析我的XML字符串,例如SAXON。我能找到的所有例子都涉及到一些數據庫連接。是否可以使用簡單的字符串作爲XML源?字符串作爲XQJ中的xml數據源

回答

0

撒克遜有一個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)); 
} 
1

嘗試使用

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

與XQConstants.CONTEXT_ITEM作爲第一個參數,並構造StreamSource包裝一StringReadeer作爲第二。