Несколько элементов с одинаковыми именами в SimpleXML и Java - PullRequest
2 голосов
/ 15 августа 2011

Я пытаюсь использовать SimpleXML для анализа XML-документа (ItemLookupResponse для книги из Amazon Product Advertising API ), который содержит следующий элемент:

<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, так что его нет в классе - я просто устанавливаю режим strict SimpleXML на off, чтобы учесть это.)

Я не смог найти пример в документации , которая соответствовала бы такому случаю. Использование ElementList с (inline=true) казалось правильным, но я не видел, как это сделать для String (в отличие от отдельного класса Author, который мне не нужен, и я не вижу, как это будет даже работа).

Вот аналогичный вопрос и ответ, но для PHP: php - simpleXML, как получить доступ к определенному элементу с тем же именем, что и другие? Я не знаю, какой эквивалент Java будет принятому ответить.

Заранее спасибо.

1 Ответ

2 голосов
/ 15 августа 2011

NB, это только от чтения документов (единственный вопрос, если это должно быть имя = "Автор" или запись = "Автор"):

@Element
public class ItemAttributes {
    @Element(inline=true, type=String.class, name="Author")
    public List<String> authors;
...
}
...