JavaでVTD(私はVTD-XMLと思われる)を使い始めました。私が今どこにデータを挿入することで問題に当たっているのですか?私は次のことをやっているとしましょう:JavaでのVTD-XML - XMLModifier.insertAfterElementの後のインデックスの検索
VTDNav nav = preExistingGen.getNav();
AutoPilot pilot = new AutoPilot(nav);
pilot.selectXPath("/Something/SomethingElse");
if (pilot.evalXPath() != -1) {
XMLModifier modifier = new XMLModifier(nav);
modifier.insertAfterElement("<some>content</some>");
}
私が想定していた何をすることは、これはVTDNavに反映されるリアルタイム更新、でした。要素の内容を単に挿入するだけでナビに何もしないので、私の理解が間違っているように見えます(VTDNavを出力すると、元のXMLがまだ含まれています)。新しいxmlのハンドルを得ることができる唯一の方法は、XMLModifierから出力することです。
modifier.outputAndReparse(); // Gives me a new VTDNav with the new content
私はここに欠けている何かがありますか?これを行う簡単な方法はありますか?新しいコンテンツを挿入してすぐに新しいインデックスを取得できるようにしたかったのです。私の既存のコード(標準的なDOMクラスを使用して)は、挿入と更新のトンを持っており、また、最後に挿入された要素が文書のどこに存在しているかを知る必要があります。毎回outputAndReparse()を実行し、挿入された要素(私が保証することさえできないかもしれません)を見つけることは、もっともらしい解決策のようには見えません。
私はどこでも見つけることができる素晴らしいソリューションはないように見えます。私のコードは新しいドキュメントの作成を扱っているので、vtdを使って入力ドキュメントの読み込みを行い、DOMを使って出力ドキュメントの書き込みを行います。 – jpcamara
+1と私はまた、VTDを使用してドキュメントを読んでナビゲートすることに決めましたが、DOMを使ってそれを変更しました。 –