如何使用JAXB维护入口订单信息?
假设我有一个如下所示的XML文件如何使用JAXB维护入口订单信息?,jaxb,Jaxb,假设我有一个如下所示的XML文件 <root> <record>foo</record> <record>bar</record> </root> 我使用JAXB读取记录。JAXB是否保留saybarcomeforfoo的信息 我的直觉是否定的,JAXB不维护这些信息。但是我被困住了,因为我真的需要得到这些信息。。。任何建议。。。顺便说一句,我不能更改xml的格式 谢谢。你真的试过了
<root>
<record>foo</record>
<record>bar</record>
</root>
我使用JAXB读取记录。JAXB是否保留saybarcomeforfoo的信息
我的直觉是否定的,JAXB不维护这些信息。但是我被困住了,因为我真的需要得到这些信息。。。任何建议。。。顺便说一句,我不能更改xml的格式
谢谢。你真的试过了吗 JAXB的注释是一个属性,它定义了属性的顺序 因此,您可以:
@XmlRootElemen(name="root")
@XmlType(propOrder={"record2", "record1"})
public class Root {
public String record1;
public String record2;
}
更新
OP根据以下内容编辑了其原始XML:
<root>
<record2>
<record1>
</root>
为此:
<root>
<record>foo</record>
<record>bar</record>
</root>
我的答案适用于包含两个元素record2和record1的原始XML。Order&Repeated elements
如果您的XML如下所示:
福
酒吧
如果将重复元素映射到java.util.List,元素的顺序将在列表中保持
@XmlElementname=记录
公共记录列表{
退货记录;
}
顺序与非重复元素
另一方面,如果您的XML如下所示:
福
酒吧
使用马歇尔
然后使用Marshaller,元素封送到XML的顺序将由以下各项控制:
@XmlType注释上的proporter属性。
@XmlAccessorOrder注释
使用粘合剂
使用活页夹,您可以将XML解析为DOM,并使用活页夹将其解组。然后可以对对象进行更改,并将这些更改应用回DOM。这允许您保留一些方面,例如从原始XML排序
有人改变了我原来的问题,foo和bar都属于同一个,但我怎么知道bar在foo之前呢???Thanks@user2167013我已经编辑了你的问题,只更正了->foo上的标记。现在你把这两个问题都改成了一个完全不同的问题。现在看来,我的回答是错误的,它对最初的问题是正确的。抱歉,这是不可接受的。问题是JAXB读取xml并填充其数据结构。订购信息已经在那里丢失了。如何使用java.util.List进行映射?对不起,我想我遗漏了一些东西。@user2167013-你说订单丢失是什么意思?一个java.util.List维护顺序。