2017-10-09 3 views
1

私はアイテムのリストを持っています。私はこれらのアイテムを見つけたら必要なフィールドを更新しますが、それらのアイテムが見つからない場合は、ファイルの最後に追加します(アイテムxmlリスト)。 次のコードでは、リストループの最後の項目を見つけて、後に新しい項目を書き込む必要があります。ループの後xmlノードをVTD-XMLで数回追加するには?

String newNode = createNewItem(listItem); //get xml string 
ap.selectXPath("//item[last()]"); 
index = ap.evalXPath(); 
if (index != -1) { 
    xm.insertAfterElement(newNode); 
} 

私は、変更を保存します

xm.output(updatedFile); 

をしかし、結果には、私は唯一の項目がファイルに追加されたことがわかります。他は見逃した。すべての商品を追加するには?

答えて

0

これは、VTD-XMLを初めて使用する人にとってよくある問題です。あなたのアプリケーションロジックは、一致するプロセスを処理し、次にXMLファイルの最後に1つのステップで挿入するフラグメントを作成する必要があります。

あなたのリストには、a、b、cという3つの項目があるとします。あなたのアプリケーションロジックは、xmlドキュメントをクエリして、xmlドキュメントの最後の後にaとcを挿入する必要があるかどうかを判断する必要があります。あなたのアプリはXMLフラグメントの連結を生成しなければなりません。最後に、あなたのアプリケーションはあなたのXML文書の最後のアイテムの後にその表現を挿入します。

質問がありますか?

+0

ありがとうございます!複数回挿入する可能性はありますか? – inest

+0

複数の挿入は、ドキュメント内の複数の場所を対象としています。単一の場所については、一回の挿入が最も効率的です。 –

関連する問題