2013-03-28 68 views
0

我使用撒克遜9.0.4,並列入我的Eclipse項目中的家庭版罐子Java程序撒克遜的XQuery。但每當我發出的查詢字符串,什麼也沒發生,我沒有得到任何輸出。當我使用命令行下面的命令,我得到正確的結果:運行使用net.sf.saxon.Query

java -cp saxon.jar net.sf.saxon.Query samplequery.xqy 

這裏是我的查詢:

doc("rcmdemo5.xml")/book/chapter 

這裏是代碼,我使用:

XQDataSource xqds = new SaxonXQDataSource(); 
XQConnection conn = xqds.getConnection(); 
XQExpression expr = conn.createExpression(); 
String es = "doc(\"rcm.xml\")/book/chapter"; 
XQResultSequence result = expr.executeQuery(es); 
while (result.next()) { 
    String str = result.getAtomicValue(); 
    System.out.println("Product name: " + str); 
} 
result.close(); 
expr.close(); 
conn.close(); 

我哪裏錯了? 此外,是否有可能從一個字符串,而不是一個文件獲得輸入?

回答

0

您的查詢返回一個零個或多個元素節點的序列(根據您所說的實際上是一個或多個節點)。該XQJ規範規定,當你調用getAtomicValue(),在結果序列中的當前項目必須是原子值,否則將拋出一個異常(不霧化的結果)。所以,我希望它可以拋出一個異常。