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

使用Jackson XmlMapper解析混合内容XML时如何获取根节点自由文本

解决方案

你需要使用Jackson XML提供的@JacksonXmlText注解,用来映射节点下的直接纯文本内容,操作步骤如下:

  1. 给Root类新增一个用于存储根节点直接文本的字段
  2. 给该字段添加@JacksonXmlText注解

修改后的实体类代码示例:

import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlText;
import javax.xml.bind.annotation.XmlRootElement;
import lombok.Getter;
import lombok.Setter;

@XmlRootElement
@Getter
@Setter
public class Root {
    // 映射根节点下的直接文本内容
    @JacksonXmlText
    private String rootText;
    
    private String sub;
}

补充说明

  • 出现报错的原因是:根节点下不属于任何子节点的纯文本内容,Jackson XmlMapper默认会将其识别为无名称的未知属性,所以抛出Unrecognized field ""的异常,关闭未知属性报错后该内容就会被直接丢弃。
  • 每个类中最多只能有一个被@JacksonXmlText注解标记的字段。
  • 如果你更习惯使用JAXB注解,也可以用@XmlMixed注解实现类似效果,该注解可以处理节点下混合文本、子节点的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 16:09:02