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

如何在JAXB解组后检查元素是否存在?(含自闭合标签场景)

检查XML自闭合元素
return (<Success />)
的存在性

嘿,这个问题其实很好解决,结合你给出的JAXB代码,我们可以通过简单的null检查来判断<Success />元素是否存在,具体思路和方法如下:

  • 核心原理:当JAXB把XML解组为ParentClass对象时,如果XML中存在<Success />(不管是自闭合标签还是空内容的<Success></Success>),它会自动创建一个Success类的实例并赋值给success字段;如果这个元素不存在,success字段会保持为null。

  • 代码实现:
    首先你需要给ParentClass添加success字段的getter方法(当前字段是private的,外部无法直接访问):

    public class ParentClass {
        @XmlElement
        private Success success;
        
        // 添加getter方法
        public Success getSuccess() {
            return success;
        }
        
        public static class Success { }
    }
    

    然后在解组完成后,通过null检查判断元素是否存在:

    // 假设已经完成XML解组得到parentObj对象
    ParentClass parentObj = ...;
    
    if (parentObj.getSuccess() != null) {
        System.out.println("<Success />元素存在");
    } else {
        System.out.println("<Success />元素不存在");
    }
    
  • 补充说明:
    你的Success类是一个空类(没有任何属性或方法),但JAXB依然会正常处理——只要XML中出现该元素,就会实例化这个类。不需要额外的注解配置,默认的@XmlElement就足够应对这种场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:31:15