2

SimpleXML を使用して、次の要素を含むXML ドキュメント ( Amazon Product Advertising APIItemLookupResponseの本)を解析しようとしています。

<ItemAttributes>
  <Author>Shane Conder</Author>
  <Author>Lauren Darcey</Author>
  <Manufacturer>Pearson Educacion</Manufacturer>
  <ProductGroup>Book</ProductGroup>
  <Title>Android Wireless Application Development: Barnes & Noble Special Edition</Title>
</ItemAttributes>

Author私の問題は、複数の可能な要素を処理する方法がわからないことです。

これは、対応する POJO (Plain Old Java Object) について現在持っているものです。ただし、複数Authorの s のケースを処理していないことに注意してください。

@Element
public class ItemAttributes {
    @Element
    public String Author;

    @Element
    public String Manufacturer;

    @Element
    public String Title;
}

(私は気にしないProductGroupので、クラスにはありません。それを可能にするために、SimpleXML のstrictモードをoffに設定しているだけです。)

このようなケースに対応するドキュメントの例は見つかりませんでした。ElementListwithを使用する(inline=true)ことは正しいように見えましたが、String に対してそれを行う方法がわかりませんでした (別の Author クラスとは対照的に、必要がなく、それがどのように機能するかわかりません)。

同様の質問と回答がありますが、PHP の場合: php - simpleXML how to access a specific element with the same name as other? 受け入れられた答えに相当するJavaが何であるかはわかりません。

前もって感謝します。

4

1 に答える 1

3

NB、これはドキュメントを読んだだけです(唯一の質問は、それが name="Author" または entry="Author" である必要があるかどうかです):

@Element
public class ItemAttributes {
    @Element(inline=true, type=String.class, name="Author")
    public List<String> authors;
...
}
于 2011-08-14T21:29:24.080 に答える