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 是统一入口,安全且简洁。
和网商城,手机平台(WAP2.0界面)v1.0测试版(带全站测试数据+图片)。 特色功能: 商品基本信息中编号条型码生成设计中,选择商品类型。 商品价格,支持单一价格,同时支持开启规格,可以分别设置价格。 商品属性,支持自定属性,不同的商品类型加载不同的商品属性,支持按属性检索浏览。 扩展属性:支持添加文字属性,图文属性等,具体功能请试用 赠送礼品:添加购买赠送的礼品(礼品后台管理)。 相关专题
立即学习“Java免费学习笔记(深入)”;
批量设置多个属性(可选技巧)
若属性来自 Map,可遍历添加:
Mapattrs = new HashMap<>(); attrs.put("id", "1003"); attrs.put("role", "admin"); attrs.put("lang", "zh-CN"); attrs.forEach(user::addAttribute);
注意事项
- 属性名和值都会被自动转义(如
"&"→"&"),无需手动处理 - 不能用
null作为属性值,会抛IllegalArgumentException;空字符串""是合法的 - 如果想彻底移除属性,用
element.removeAttribute("name")
基本上就这些。addAttribute 一招搞定增/改,不用区分逻辑,也不用先查再设。









