DOM4J中通过Element.addAttribute()统一实现属性的添加与修改:属性不存在时新增,存在时更新值;支持批量设置、自动转义,但禁止null值,移除需调用removeAttribute()。
DOM4J 中添加或设置元素属性,主要用 Element.addAttribute() 方法,它会自动处理属性存在与否的情况——如果属性已存在就更新值,不存在就新增。
直接调用 addAttribute(name, value) 即可:
Element user = doc.getRootElement().addElement("user");
user.addAttribute("id", "1001");
user.addAttribute("status", "active");
生成的 XML 片段类似:
同样用 addAttribute(),传入相同名称和新值即可覆盖:
// 假设 user 已有 id="1001"
user.addAttribute("id", "1002"); // 自动更新为 1002
DOM4J 不提供单独的 “set” 方法,addAttribute 是统一入口,安全且简洁。
若属性来自 Map,可遍历添加:
Mapattrs = new HashMap<>(); attrs.put("id", "1003"); attrs.put("role", "admin"); attrs.put("lang", "zh-CN"); attrs.forEach(user::addAttribute);
"&" → "&"),无需手动处理null 作为属性值,会抛 IllegalArgu
mentException;空字符串 "" 是合法的element.removeAttribute("name")
基本上就这些。addAttribute 一招搞定增/改,不用区分逻辑,也不用先查再设。