XmlMapper для записи XML с повторяющимся элементом - PullRequest
0 голосов
/ 09 января 2019

Я использую XmlMapper для записи файла XML с использованием POJO. Я хочу, чтобы мой xml выглядел так:

<?xml version="1.0" encoding="ISO-8859-1"?>
<document>
<section name="introduction">
  <paragraph>
    <word>1</word>
    <word>2</word>
  </paragraph>
  <paragraph>
    <word>3</word>
    <word>4</word>
  <paragraph>
</section>
<section name="abstract">
 <paragraph>
    <word>1.1</word>
    <word>2.1</word>
  </paragraph>
  <paragraph>
    <word>3.1</word>
    <word>4.1</word>
  <paragraph>
</section>
</document>

Я использовал следующий код в моем pojo, который составляет список. Каждый список является праграфом.

@JacksonXmlElementWrapper(localName = "paragraph")
    @JacksonXmlProperty(localName = "word")
    public List<List<String>> getParagraph()
    {
        List<List<String>> paragraphList = new ArrayList<List<String>>();
        String[] splited = sectionText.split("\n");
        for (String paragraph : splited)
        {
            String[] splittedWords = paragraph.split("\\s+");
            paragraphList.add(Arrays.asList(splittedWords));
        }
        return paragraphList;
    }

Но это дает мне следующий вывод:

<?xml version="1.0" encoding="ISO-8859-1"?>
<document>
<section name="introduction">
  <paragraph>
    <word>1</word>
    <word>2</word>
    <word>3</word>
    <word>4</word>
  <paragraph>
</section>
<section name="abstract">
 <paragraph>
    <word>1.1</word>
    <word>2.1</word>
    <word>3.1</word>
    <word>4.1</word>
  <paragraph>
</section>
</document>

Мне нужно поставить идентификатор абзаца после окончания каждого списка. Должен ли я использовать что-то еще, кроме списка

1 Ответ

0 голосов
/ 09 января 2019

(после вашего обновления) ... Похоже, вы упустили момент, который вам нужен Paragraph Pojo.

Тогда ваше Section Pojo должно иметь свойство List<Paragraph>, а Paragraph Pojo должно иметь свойство List<Word>

...