gpt4 book ai didi

java - 使用 JAXB 注释绑定(bind) XML

转载 作者:行者123 更新时间:2023-11-29 05:57:33 24 4
gpt4 key购买 nike

我有以下 XML 格式:

 <repositories>
<set>
<id>1</id>
<name>First</name>
<spec>data</spec>
</set>
<set>
<id>2</id>
<name>INFO</name>
<spec>main</spec>
</set>
.
.
</repositories>

我创建了以下 package-info.java

 @javax.xml.bind.annotation.XmlSchema (
elementFormDefault=XmlNsForm.QUALIFIED,
xmlns = {}
)

package website.model;

import javax.xml.bind.annotation.XmlNsForm;

以及以下类:

@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Repositories {

@XmlElement
private ListofRepositories repositories;

public ListofRepositories getRepositories() {
return repositories;
}

public void setRepositories(ListofRepositories repositories) {
this.repositories = repositories;
}

}

包装集合

@XmlAccessorType(XmlAccessType.FIELD)
public class ListofRepositories {

private List<Sets> set;

public List<Sets> getSet() {
return set;
}

public void setSet(List<Sets> set) {
this.set = set;
}

}

和数据:

@XmlAccessorType(XmlAccessType.FIELD)
public class Sets {

private Long id;
private String name;
private String spec;

//get set

}

我不知道为什么这行不通。响应始终为空。我用 Java 和 JAXB 注释实现了类似的过程,但我从来没有遇到过这种问题。有谁知道出了什么问题,我该如何解决?

最佳答案

对于上面的xml,你需要如下的类结构:

@XmlRootElement(name="repositories")
@XmlAccessorType(XmlAccessType.FIELD)
public class Repositories {

@XmlElement
private List<Sets> set;

//getter and setter

}

@XmlAccessorType(XmlAccessType.FIELD)
public class Sets {

private Long id;
private String name;
private String spec;

//getter and setter

}

但是,根据您的类结构,您将获得以下 xml:

<Repositories>
<repositories>
<set>
<id></id>
<name></name>
<spec></spec>
</set>
<set>
<id></id>
<name></name>
<spec></spec>
</set>
.
.
.
</repositories>
</Repositories>

关于java - 使用 JAXB 注释绑定(bind) XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11493053/

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