0

私はxmlオブジェクト変換の初心者です。現在、xstreamを使用しています。

私の質問は、最後の付録のようにオブジェクトを1つずつxmlに格納し、読み取り中にそれらを配列リストとして読み取る方法があるかどうかです。

基本的に私は次のようなxmlファイルを持っています

<person>
    <firstname>Joe</firstname>
    <lastname>Walnes</lastname>
    <phone>
        <code>123</code>
        <number>1234-456</number>
    </phone>
    <fax>
        <code>123</code>
        <number>9999-999</number>
    </fax>
</person>
<person>
    <firstname>Joe</firstname>
    <lastname>Walnes</lastname>
    <phone>
        <code>123</code>
        <number>1234-456</number>
    </phone>
    <fax>
        <code>123</code>
        <number>9999-999</number>
    </fax>
</person>

そして私はできるようになりたい

List<Person> persons = (ArrayLIst<Person()>)xstream.fromXML(xml);

xstreamはここで使用するのに適切なものですか、これを達成するために使用できるより良いものはありますか?助けてくれてありがとう!

4

2 に答える 2

0

個々のオブジェクトの書き込みとリストの読み取りは機能しません。理由を確認するには、1 つのファイルでいくつかのオブジェクトを使用toXmlして書き込み、別のファイルでオブジェクトの 1 つを書き込みList、2 つを比較します。

ただし、個々のオブジェクトを1つずつ読み取ってリストに追加するのはかなり簡単なはずです。

create list
while (read object using fromXml)
  add to list
于 2013-02-15T19:39:56.200 に答える
0

標準の Java XMLEncoderおよびXMLDecoderクラスを使用できます。これらは、オブジェクトの入力および出力ストリームと同じくらい使いやすく、保持する必要のあるプロパティのゲッターとセッターを持つオブジェクト、コレクション、および複数のオブジェクトを同じストリームに書き込むことができます。欠点は、それらが生成して読み取る XML が人間にとって理解するのがかなり難しいことです。

オブジェクトを 1 つずつ手動で作成する場合は、ArrayIndexOutOfBoundsException (EOF を検出するための興味深いイベントですが、これが文書化されている方法です) を取得するまで、それらを 1 つずつ読み取る必要もあります。コレクション全体を 1 回の呼び出しでロードすることはできませんが、単純なループはここでは複雑ではないように見え、最後に ArrayList を取得します。

于 2013-02-15T20:24:38.843 に答える