1

私は Saxon 9.0.4 を使用しており、Home Edition jar を Eclipse プロジェクトに含めました。しかし、クエリ文字列を発行しているときはいつでも、何も起こらず、出力も得られません。コマンド ラインから次のコマンドを使用すると、正しい結果が得られます。

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();

どこが間違っていますか?また、ファイルの代わりに文字列から入力を取得することは可能ですか?

4

1 に答える 1

0

あなたのクエリは、ゼロ以上の要素ノードのシーケンスを返します(あなたの言うことから、実際には1つ以上であると思います)。XQJ 仕様では、getAtomicValue() を呼び出す場合、結果シーケンスの現在の項目はアトミック値である必要があり、そうでない場合は例外がスローされます (結果はアトミック化されません)。したがって、これにより例外がスローされると予想されます。

于 2013-03-28T22:39:37.590 に答える