You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用JAXB实现XML转Java类时,无法读取标签文本值的问题求助

解决JAXB无法读取XML标签文本值的问题

你漏了映射XML元素文本内容的配置——你的Java类里没有对应<element>标签内部"220"这个文本值的字段,JAXB自然不知道该把这部分内容存到哪里。

解决方法很简单,在类中新增一个字段,并用@XmlValue注解标记它,这个注解专门用来绑定XML元素的文本内容:

@Data
@XmlAccessorType(XmlAccessType.FIELD)
public class element {
    @XmlAttribute(name = "Id")
    private String Id;
    @XmlAttribute(name = "Composite")
    private String Composite;
    // 新增字段,映射XML标签的文本值
    @XmlValue
    private String value;
    private List<subelement> subelement;
}

修改后重新转换,生成的Java对象对应的JSON就会包含文本值:

{
    "subelement": null,
    "id": "BGM01",
    "composite": null,
    "value": "220"
}

注意事项

  • 一个Java类只能有一个字段标记@XmlValue
  • 如果类中同时存在@XmlValue和子元素(比如你的subelement集合),子元素必须是集合类型,这一点你的代码已经符合要求,不需要调整

内容的提问来源于stack exchange,提问作者iwritecomeinmymind

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 08:12:43