XMLファイル(動的)を大量に処理するジョブを実行していますが、特定のJavaオブジェクトを@XmlRootElementに定義することはできません。私はXMLオブジェクトをMapオブジェクトに変換する必要があると思います。Springバッチ - JsonへのXMLファイルのアンマーシャリング - 動的XML
例:ファイルの構造はわかりませんが、動的です。私は2つのxmlファイルを持っていると私は両方のファイルを処理する1つのジョブを実行しようとします。
ファイル1 -
<Pessoa>
<campos>
<campo>
<nome>Carlos</nome>
<sobrenome>Silva</sobrenome>
</campo>
<campo>
<nome>Carlos</nome>
<sobrenome>Silva</sobrenome>
</campo>
</campos>
</Pessoa>
ファイル2 -
<Parent>
<childs>
<child>Lala</campo>
<child>Lala</campo>
</childs>
</Parent>
ItemReaderとItemProcessorは、両方のファイルを実行する必要があります。ファイルは動的であり、クラスにバインドするように通知することはできません。たとえば :このファイルは可能であり、処理するために、春のバッチを使用してStaxEventItemReader
Jaxb2Marshaller unmarshaller = new Jaxb2Marshaller();
// It is possible? The Map.class hasn't @XmlRootElement declaration
//unmarshaller.setClassesToBeBound(Map.class);
setUnmarshaller(unmarshaller);
setFragmentRootElementNames(new String[] {"Pessoa", "Parent"});
拡張私の読者は、私の要件に従って?
ありがとうございます!
使用するクラス構造がない場合は、xmlからjsonに直接移動しませんか?あなたはまだ私がこれを正しく理解している場合、jsonを生成するクラスを持っていません – efekctive
Jsoupを使用してXMLをメモリに入れ、JsonBuilderを使用してsonファイルを作成することができます – efekctive
jsonでxmlファイルを変換する必要があります。春のバッチ処理。私はこのプロセスが高価になると思います。 –