2011-09-14 6 views
0

JavaでXMLファイルを生成して変更する簡単な方法を探しています。要素削​​除によるJavaプログラムのXMLファイルジェネレーター

<?xml version = "1"?> 
<exchange> 
<name> Exchange_1 </name> 
<queue> Queue_1 </queue> 
<queue> Queue_2 </queue> 
</exchange> 
<exchange> 
<name> Exchange_2 </name> 
<queue> Queue_3 </queue> 
<queue> Queue_4 </queue> 
</exchange> 

このファイルは同じプログラムで読み取り/書かれているので、それがどの規格に準拠する必要がdoesntの:私は何をしたいか はこのようなものです。私が必要とするのは、要素を変更できることです。 ご覧のとおり、これは交換キューの説明です。だから私は新しい交換を追加するときに、私は新しいエントリを作成したい、そして、私はその交換にキューをバインドするとき、彼らは交換のためのタグの下に行く必要があります。

このファイルを後で読み込み、どの交換が存在し、どのキューがそれらにバインドされているかを確認できます。しかし、キューと交換を取り除くこともできるようにしたい。たとえば、キュ​​ーを削除するときには、その<queue>要素だけを削除しますが、交換を削除すると、<exchange>の全部を取り除き、<queue>にする必要があります。

このようなことを行うより簡単で効率的な方法はありますか?

ありがとうございます。

+0

xmlツリービューはどうですか? – HRgiger

答えて

1

はい、簡単な方法があります:XMLを使用しないでください。

代わりにQueueSerializableオブジェクトを使用し、後でデシリアライズするためにキューをディスクにシリアル化します。

IMHO、XMLは本当に本当に吸う。

+0

ありがとうBohemian.But私はマシンの間で構造を共有したいので、これはファイルに書かれている必要があります。 – madu

+0

シリアライズされたオブジェクトグラフをマシン間で共有できます。それはXMLだけではありません。あなたはXMLにシリアル化するためにJAXBを使用することができます。 –

+0

@maduは明らかに "ディスクへのシリアライズ" **はファイルであり、両方が同じバージョンのコードで実行されている限り、マシン間で共有することができます。これは、Javaオブジェクトを動かすための最も簡単で最善の方法です。ここで警告:キューに入れられたオブジェクトクラスをシリアル化した後に変更すると、新しいバージョンに正しくデシリアライズされないことがあります(変更の内容によって異なります)。 – Bohemian

2

JAXBを使用するとSahil Muthooは言う。 Yoは、XMLをjavaクラスにマーシャリングしアンマーシャリングしてから、javaクラスを操作することができます。

JAXB examples

関連する問題