java - Castor:如何映射简单的字符串列表?

标签 java xml castor

我的类(class)中有以下字段:

private List<String> messages;

这是我的映射:

<field name="messages" collection="arraylist" type="string" container="false>
  <bind-xml name="errors" node="element"/>
</field>

这是我通过编码得到的结果:

<errors><string>message1</string><string>message2</string></errors>

这就是我想要实现的目标:

<errors><error>message1</error><error>message2</error></errors>

感谢任何帮助!

最佳答案

您使用编码来实现此目的有什么原因吗?它将有一套定义 XML 输出的方法,以便它知道如何在解码时重新创建对象。因此,如果您确实想要使用编码来输出 XML,我认为您需要创建一个名为 Error 的新类型,您的列表将是:

private List<Error> messages;

以及映射:

<field name="messages" collection="arraylist" type="error" container="false>
  <bind-xml name="errors" node="element"/>
</field>

或者,如果您只是想创建 xml 输出,并且您的内容确实与上面给出的一样简单,那么您可以编写一个 toXml() 方法,该方法循环遍历列表,添加您想要的内容。可以使用 fromXml() 方法完成逆操作,该方法使用 DOM 或 SAX 解析 XML 并重建字符串列表。

关于java - Castor:如何映射简单的字符串列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2598621/

相关文章:

java - 如何修复 scala.tools.nsc.typechecker.Contexts$Context.imports(Contexts.scala :232) in an sbt project?

java - 获取嵌套的 Hashmap 值

android - 错误.xml "error: Error parsing XML: unbound prefix"

java - 编辑castorbuilder.properties文件

code-generation - Maven - 如何让 Castor 插件在生成源阶段触发?

Java For 循环不可达代码

java - 如何暂停但不卡住Android执行?

java - 无法使用 Stax 中的 XMLEventReader 检查 XML 中的 CDATA

xml - XPath如何获取子节点text和self

java - spring boot : java. lang.IllegalArgumentException: 对象不是声明类的实例