Джексон: анализировать xml, игнорируя разделители строк

У меня есть xml, который содержит несколько текстовых блоков в списке элементов. Элементы содержат некоторый форматированный текст. Он отформатирован с использованием разрывов строк и пробелов перед новыми строками (стандартное форматирование моей IDE). Например:

<items>
    <item>
        <title>Long text Item</title>
        <content>
            Some long long long text that I
            want to format using line brakes 
            so that it will be more readable 
            in source code.
        </content>
    </item>
    ...
<items>

Я прочитал XML, используя следующий код:

XmlMapper mapper = new XmlMapper();
List<ItemDTO> result = mapper.readValue(
        inputStream, new TypeReference<List<ItemDTO>>() {}
);

Проблема. Такой синтаксический анализ сохраняет разрывы строк и пробелы внутри элемента content.

Вопрос. Как выполнить синтаксический анализ XML, игнорируя пробелы и разрывы строк в элементе content?


person Sasha Shpota    schedule 31.08.2018    source источник


Ответы (1)


Вы можете определить свой pojo следующим образом:

class ItemDTO {
  private String title;
  private String content;
  public String getTitle() {
    return title;
  }
  public void setTitle(String title) {
    this.title = title;
  }
  public String getContent() {
    return content;
  }
  public void setContent(String content) {
    if (content != null) {
      this.content = content.replace("\n", " ");
    }
  }

}
person S.K.    schedule 01.09.2018
comment
Спасибо. Я ищу нестандартное решение Джексона - person Sasha Shpota; 01.09.2018
comment
У Джексона нет готового решения, чтобы справиться с этим. Вы пытались использовать пользовательский десериализатор Джексона? - person S.K.; 01.09.2018