Java更新XML值需“读取—修改—写回”,推荐DOM解析器;先用DocumentBuilder加载XML,再通过getElementsByTagName或XPath定位元素,调用setTextContent()修改文本,或setAttribute()修改属性,最后用Transformer写回磁盘并设置UTF-8编码和缩进。
Java更新XML文件中的某个值,核心是“读取—修改—写回”,推荐使用DOM解析器,适合小到中等规模XML,操作直观、支持随机访问节点。
先用DocumentBuilder加载XML为Document对象,再通过XPath或getElementsByTagName找到目标元素,调用setTextContent()更新值。例如想把/root/user/name的文本改为"张三":
DOM修改后不会自动写入磁盘,需用TransformerFactory生成Transformer,再用DOMSource和StreamResult写回:
若要改的是属性(如
.setValue("1002"),或更常用element.setAttribute("id", "1002")
读取时确保FileInputStream指定正确编码(如UTF-8),写入时设置OutputKeys.ENCODING为"UTF-8";若需保留原始缩进,可启用indent并设置缩进大小,但DOM本身不保留原始空白,如需严格格式建议配合第三方库如jdom2或jsoup(对XML兼容场景)