当前位置: 首页 > 知识库问答 >
问题:

如何使用具有不同根元素和子元素的jaxb将xml字符串转换为java对象列表

令狐泓
2023-03-14

我在下面提到了xml字符串和团队类。我想使用jaxb将所有行元素转换为团队列表。

<team-all>
 <query-output>
    <row teamId="1" teamName ="MyTeam1" />
    <row teamId="2" teamName ="MyTeam2" />
 </query-output>
</team-all>

public class Team {

private String teamId;
private String teamName;

public String getTeamId() {
    return teamId;
}

public void setTeamId(String teamId) {
    this.teamId = teamId;
}

public String getTeamName() {
    return teamName;
}

public void setTeamName(String teamName) {
    this.teamName = teamName;
}
}

共有1个答案

杨鸿畅
2023-03-14
@XmlRootElement(name="team-all")
@XmlAccessorType(XmlAccessType.FIELD)
public class AllTeam{

    @XmlElementWrapper(name="query-output")
    @XmlElement(name="row")
    private List<Team> teams;

    //getters and setters

}

@XmlAccessorType(XmlAccessType.FIELD)
public class Team {

@XmlAttribute
private String teamId;
@XmlAttribute
private String teamName;

public String getTeamId() {
    return teamId;
}

public void setTeamId(String teamId) {
    this.teamId = teamId;
}

public String getTeamName() {
    return teamName;
}

public void setTeamName(String teamName) {
    this.teamName = teamName;
}
}

然后呢

Unmarshaller um = JAXBContext.newInstance(AllTeam.class).createUnmarshaller();
AllTeam tm = um.unmarshall(new File("pathToXml"));

如果文件不适合您,unmarshall方法可以接受不同的输入。

 类似资料:
  • 问题内容: 我想将字符串列表转换为大写。 这是我执行此操作的代码: 有没有更简单/更好的方法来做到这一点? 问题答案: 您实际上并没有改变列表;您已经创建了一个新列表。 要通过一个小的方法调用转换列表,请使用:

  • 问题内容: 有没有办法像这样转换HTML: 或任何其他HTML字符串插入DOM元素?(以便我可以使用appendChild())。我知道我可以执行.innerHTML和.innerText,但这不是我想要的-我确实希望能够将动态HTML字符串转换为DOM元素,以便可以在.appendChild()中传递它。 更新:似乎有些混乱。我将HTML内容放在字符串中,作为JavaScript中变量的值。该文

  • 有太多关于大致相同主题的问题,但我找不到我想要的。如果我错过了,我很抱歉。 我正在尝试散集具有公共逻辑元素但使用不同标记定义的XML文件: 两个<代码> 我可以这样做: 所需要的只是在和中实现并分别返回或。 然而,在中有一个属性并以某种方式告诉JAXB将这两个字段映射到它似乎更简单。 我是不是想多了?你将如何实现它? (当然,我无法控制输入XML。如果可能的话,我还想避免使用MOXy的解决方案,因

  • 问题内容: 能够将常规元素临时转换为会非常有用。例如,假设我有一个想要翻转的样式。我想动态创建画布,将其“渲染” 到画布中,隐藏原始元素并为画布设置动画。 能做到吗 问题答案: 抱歉,浏览器无法将HTML渲染到画布中。 如果可能的话,这将带来潜在的安全风险,因为HTML可以包含来自第三方站点的内容(尤其是图像和iframe)。如果可以将HTML内容转换为图像,然后读取图像数据,则有可能从其他站点提

  • 我有下面的xml结构: 有不同的 Field(X) 包装器元素,它们包含相同的用户元素。XML 中可以发送 n 个字段。因此,我不能为每个单独的Jaxb。我需要访问用户,但在取消编组步骤后忽略 Field 元素。不幸的是,我无权更改xml结构。我无法找到解决方案。任何指针都会有所帮助。