gpt4 book ai didi

xml - 如何将 xml 属性添加到 jaxb 注释类 XmlElementWrapper?

转载 作者:数据小太阳 更新时间:2023-10-29 01:38:19 25 4
gpt4 key购买 nike

我有一个带有 XmlElementWrapper 注释的类,例如:

...

  @XmlElementWrapper(name="myList")
@XmlElements({
@XmlElement(name="myElement") }
)
private List<SomeType> someList = new LinkedList();

...此代码生成类似

的 XML
<myList>
<myElement> </myElement>
<myElement> </myElement>
<myElement> </myElement>
</myList>

到目前为止还不错。

但是现在我需要给列表标签添加属性来获取类似 XML 的

<myList number="2">
<myElement> </myElement>
<myElement> </myElement>
<myElement> </myElement>
</myList>

是否有一种“无需创建包含表示列表的新类即可实现此目的的智能方法?”

最佳答案

我为您的问题找到了更好的解决方案。

要制作 Xml Java 对象,请使用以下代码:

import java.util.*;
import javax.xml.bind.annotation.*;

@XmlRootElement(name="myList")
public class Root {

private String number;
private List<String> someList;

@XmlAttribute(name="number")
public String getNumber() {
return number;
}

public void setNumber(String number) {
this.number = number;
}

@XmlElement(name="myElement")
public List<String> getSomeList() {
return someList;
}

public void setSomeList(List<String> someList) {
this.someList = someList;
}

public Root(String numValue,List<String> someListValue) {
this();
this.number = numValue;
this.someList = someListValue;
}

/**
*
*/
public Root() {
// TODO Auto-generated constructor stub
}

要使用 JAXB 运行上述代码,请使用以下命令:

   import java.util.ArrayList;
import java.util.List;

import javax.xml.bind.*;

public class Demo {

public static void main(String[] args) throws Exception {
List<String> arg = new ArrayList<String>();
arg.add("FOO");
arg.add("BAR");
Root root = new Root("123", arg);

JAXBContext jc = JAXBContext.newInstance(Root.class);
Marshaller marshaller = jc.createMarshaller();
marshaller.marshal(root, System.out);
}
}

这将产生以下 XML 作为输出:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<myList number="123">
<myElement>FOO</myElement>
<myElement>BAR</myElement>
</myList>

我认为这对你更有帮助。

谢谢..

关于xml - 如何将 xml 属性添加到 jaxb 注释类 XmlElementWrapper?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3666467/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com