私のプロジェクトではXQueryを使用し、JAXではSAXON9を使用してXQueryを実行しています。XQueryを使用したXMLノード値の更新
ここで問題は、ノード値を更新しようとすると、例外が発生することです。 XQueryを使用してxmlファイルからデータを選択する際に問題はありません。面倒な問題はxqueryによるデータ変更だけです。
これは私のクエリです: DOCに$ fnameのために(ノードの値を置き換えます( "D:/contacts.xml")/ディレクトリ/連絡先/連絡先[@ ID = '0045d6cd-2c79-4a8d-879b-e8b0b9bfd16e ']/LastNameは$ fnameを返します) は' foo 'です。
例外: javax.xml.xquery.XQException:パス式の予期しないトークン "replace value"。
上記のクエリを正常に実行するために、SAXON9の設定を行う必要がある人はいますか?
「xqueryで更新」の設定があると聞きました。 SAXONでどうすればいいですか?
ご返信ありがとうございます。私はあなたの提案としてやったが、まだ同じ問題を抱えている。 JAVAのSAXON9eeを使用して更新クエリを実行する方法を示すコードを送信できますか? – sunilkumar
ここに私のコードは何か間違っていますか? XsDataSource ds =新しいSaxonXQDataSource(); XQConnection conn = ds.getConnection(); XQExpression expr = conn.createExpression(); 文字列クエリ= "ノードの値を置き換え...."; IndependentContextコンテキスト=新しいIndependentContext(); XPathEvaluator xPathEvaluator = new XPathEvaluator(); xPathEvaluator.setStaticContext(context); 設定conf = xPathEvaluator.getConfiguration(); プロセッサプロセス=新しいプロセッサ(conf); XQueryCompilerコンパイラ= process.newXQueryCompiler(); compiler.setUpdatingEnabled(true); XQResultSequence result = expr.executeQuery(クエリ); – sunilkumar
本当にそれを読むことはできませんが、 'setUpdatingEnabled'を呼び出しているので、その部分が正しいです。あなたはEEバージョンを使用していますか? –