Java如何创建XML文件 Java DocumentBuilder使用方法
发布时间 - 2026-02-01 00:00:00 点击率:次Java中创建XML文件需用DOM解析:先通过DocumentBuilderFactory获取DocumentBuilder,再创建Document;接着用createElement、createTextNode等构建节点并组织层级;最后用Transformer将DOM树序列化为XML文件。
Java中创建XML文件常用DOM解析方式,核心是通过DocumentBuilder生成空文档,再用Document对象构建节点、设置内容,最后用Transformer写入文件。关键在于正确获取DocumentBuilder实例,避免直接new——必须通过DocumentBuilderFactory创建。
获取DocumentBuilder并新建Document
不能直接实例化DocumentBuilder,需通过工厂类获取线程不安全但轻量的builder:
- 调用
DocumentBuilderFactory.newInstance()获取工厂 - 可选:关闭验证和命名空间支持(如
setValidating(false)、setNamespaceAware(false))以提升性能 - 调用
newDocumentBuilder()得到builder,再用newDocument()创建空白XML文档
构建XML结构(添加元素、属性、文本)
从Document出发,逐层创建节点:
- 用
createElement("tagName")创建元素节点 - 用
createTextNode("text")创建文本内容 - 用
setAttribute("name", "value")为元素添加属性 - 用
appendChild()或insertBefore()组织父子关系(如root.appendChild(child)) - 根元素必须且只能有一个,通常先
appendChild(root)到document
将Document保存为XML文件
DOM树建好后需序列化输出,使用JAXP的Transformer:
- 调用
TransformerFactory.newInstance().newTransformer()获取transformer - 可设置缩进:
transformer.setOutputProperty(OutputKeys.INDENT, "yes"),并设缩进大小(如"{http://xml.apache.org/xslt}indent-amount", "2") - 用
DOMSource(sourceDoc)包装document,StreamResult(new File("out.xml"))指定输出目标 - 执行
transform(source, result)完成写入
完整示例(生成简单配置文件)
以下代码生成config.xml,含根节点、子元素及属性:
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.newDocument();
Element root = doc.createElement("config");
doc.appendChild(root);
Element db = doc.createElement("database");
db.setAttribute("type", "mysql");
db.setAttribute("vers
ion", "8.0");
db.appendChild(doc.createTextNode("localhost:3306"));
root.appendChild(db);
Transformer transformer = TransformerFactory.newInstance().newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
transformer.transform(new DOMSource(doc), new StreamResult(new File("config.xml")));
# mysql
# java
# node
# apache
# app
# win
# stream
# 配置文件
# 命名空间
# xml
# 线程
# 对象
# dom
# transform
# database
# transformer
# http
# 再用
# 文档
# 可选
# 关键在于
# 不安全
# 保存为
# 有一个
# 建好
# 需用
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南
Laravel如何创建和注册中间件_Laravel中间件编写与应用流程
如何在万网利用已有域名快速建站?
微信小程序 wx.uploadFile无法上传解决办法
打造顶配客厅影院,这份100寸电视推荐名单请查收
Laravel如何实现API速率限制?(Rate Limiting教程)
python中快速进行多个字符替换的方法小结
Laravel事件监听器怎么写_Laravel Event和Listener使用教程
深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?
百度输入法ai组件怎么删除 百度输入法ai组件移除工具
Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】
头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?
如何安全更换建站之星模板并保留数据?
Laravel如何编写单元测试和功能测试?(PHPUnit示例)
如何快速搭建高效服务器建站系统?
高防服务器如何保障网站安全无虞?
简历在线制作网站免费版,如何创建个人简历?
如何用VPS主机快速搭建个人网站?
JavaScript如何实现错误处理_try...catch如何捕获异常?
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)
Linux后台任务运行方法_nohup与&使用技巧【技巧】
Laravel如何使用Blade模板引擎?(完整语法和示例)
Laravel如何创建自定义Artisan命令?(代码示例)
猎豹浏览器开发者工具怎么打开 猎豹浏览器F12调试工具使用【前端必备】
如何在万网自助建站中设置域名及备案?
中山网站推广排名,中山信息港登录入口?
Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理
如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?
大同网页,大同瑞慈医院官网?
Android 常见的图片加载框架详细介绍
javascript中对象的定义、使用以及对象和原型链操作小结
PHP 500报错的快速解决方法
Python正则表达式进阶教程_复杂匹配与分组替换解析
iOS发送验证码倒计时应用
rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted
Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程
大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?
如何在Windows环境下新建FTP站点并设置权限?
phpredis提高消息队列的实时性方法(推荐)
合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?
Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】
消息称 OpenAI 正研发的神秘硬件设备或为智能笔,富士康代工
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用
Laravel Session怎么存储_Laravel Session驱动配置详解
如何基于云服务器快速搭建网站及云盘系统?


