0

車両の配列を含む XML ファイルがありますが、それを逆シリアル化し、各オブジェクトを取得して独自の車両に配置できるようにする必要があります。

たとえば、これは私の XML ファイルのようなものです。

<Vehicle-array>
   <Car></Car>
   <Truck></Truck>
   <Van></Van>
</Vehicle-array>

そのため、Car 要素をオブジェクトではなく Car オブジェクトとして逆シリアル化できるようにする必要がありVehicleます。

すべてを取得できVehicle[]、各要素は特定のVehicleタイプです。

4

3 に答える 3

1

それらをすべて Vehicle Array に入れてから、 instanceof を使用してキャストするだけです

if(a instanceof Car)
    a = (Car) a ;
else if(a instanceof Truck)
    ...
于 2013-07-08T20:08:27.913 に答える
0

次のように、クラスを作成し、すべてのクラスに @XStreamAlias という注釈を付ける必要があると思います。

@XStreamAlias("Car")
class Car { }

@XStreamAlias("Truck")
class Truck { }

ほとんどの情報はドキュメントにあります。最初にクラスを作成してから、XML にシリアル化することをお勧めします。そうすれば、マッピングが簡単になります。

于 2013-07-08T20:13:11.040 に答える
0

JAXB を使用できますが、それには XML スキーマが必要になります。そこから実行xjcしてスキーマから Java クラスを生成し、MarshallerおよびUnmarshallerインターフェイスを使用して XML からオブジェクトを構築できます。

于 2013-07-08T20:02:28.640 に答える