java - XmlMapper 使用重复元素编写 XML

标签 java xmlmapper

我正在使用 XmlMapper 使用 POJO 编写 XML 文件。 我希望我的 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>

我需要在每个列表结束后放置段落标识符。我可以使用列表以外的其他东西吗

最佳答案

(更新后)... 看来您错过了您需要的一点Paragraph波乔。

然后你的Section Pojo 必须有 List<Paragraph>属性(property)和Paragraph Pojo 必须有 List<Word>属性(property)

关于java - XmlMapper 使用重复元素编写 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54116038/

相关文章:

java - 如何使用mockito模拟junit中的连续调用方法?

java - Android:无法启动 Activity :NullPointerException?

java - 动态设置 View 样式

java - 如何配置 XStream 以根据 XML 属性映射到不同的类?

ios - XML解析中URL没有响应-Alamofire Swift 5

java - XMLWriter 使用 zdef 扩展属性名称?

java - 使用 Jackson XML 映射器将 Java 列表序列化为 XML

ios - 如何访问孙子元素?

java - 自定义对象数组和 For 循环

java - java项目中的Filter.jar