跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Javajava

Java 使用 org.w3c.dom 解析 XML 文档的创建、读写与遍历

综述由AI生成Java 通过 org.w3c.dom 接口解析 XML 文档,演示了 Document 对象的创建、根节点与子元素的构建、属性设置、文本节点添加、文件保存以及读取遍历等完整流程。代码展示了如何使用 DocumentBuilderFactory 和 DocumentBuilder 实例化解析器,利用 createElement 和 appendChild 组装结构,并通过 FileOutputStream 输出结果,最后通过 getElementsByTagName 遍历节点获取属性与内容值。

未来可期发布于 2017/10/6更新于 2026/6/1121 浏览
Java 使用 org.w3c.dom 解析 XML 文档的创建、读写与遍历

Java 使用 org.w3c.dom 解析 XML 文档

本文介绍如何在 Java 中使用 org.w3c.dom 解析 XML 文档,涵盖创建、增删查改、保存、读取及遍历元素等操作。

创建 XML 文档及元素

// 创建一个 Document,用于存储成 xml
public static Document creat_xml() {
    // 为解析 XML 作准备,创建 DocumentBuilderFactory 实例,指定 DocumentBuilder
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    DocumentBuilder db = null;
    try {
        db = dbf.newDocumentBuilder();
        Document doc = db.newDocument();
        // 下面是建立 XML 文档内容的过程,先建立根元素
        Element root = doc.createElement("花名册");
        // 根元素添加到文档
        doc.appendChild(root);
        // 建立子元素
        for (int i = 0; i < 10; i++) {
            // 建立一级子元素,添加到根元素
            Element student = doc.createElement("学生");
            // 为一级子元素设置属性
            student.setAttribute("性别", "男");
            root.appendChild(student);
            // 为一级子元素添加文本
            Text tName = doc.createTextNode( + i);
            student.appendChild(tName);
        }
         doc;
    }  (Exception err) {
        err.printStackTrace();
        System.exit();
    }
     ;
}
"学生"
return
catch
1
return
null

将文档 document 保存成 xml 文件

// 将 Document 保存成 xml 文件
public static void save_xml(org.w3c.dom.Document doc, String filepath) {
    try {
        // 把 XML 文档输出到指定的文件
        org.apache.crimson.tree.XmlDocument xmlDoc = (org.apache.crimson.tree.XmlDocument)doc;
        FileOutputStream outStream = new FileOutputStream(filepath);
        OutputStreamWriter outWriter = new OutputStreamWriter(outStream);
        xmlDoc.write(outWriter, "GB2312");
        outWriter.close();
        outStream.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

读取遍历 xml 文件

public static void read_xml(String filepath) {
    try {
        // 创建解析工厂
        DocumentBuilderFactory dbfactory = DocumentBuilderFactory.newInstance();
        // 指定 DocumentBuilder
        DocumentBuilder builder = dbfactory.newDocumentBuilder();
        // 从文件构造一个 Document,因为 XML 文件中已经指定了编码,所以这里不必了
        Document doc = builder.parse(new File(filepath));
        // 得到 Document 的根
        Element root = doc.getDocumentElement();
        System.out.println("根节点标记名:" + root.getTagName());
        System.out.println("*****下面遍历 XML 元素*****");
        // 获得一级子元素
        NodeList list = root.getElementsByTagName("学生");
        // 遍历一级子元素
        for (int i = 0; i < list.getLength(); i++) {
            // 获得一级子元素
            Element element = (Element) list.item(i);
            // 获得性别属性
            String sex = element.getAttribute("性别");
            // 获得元素的值
            String name = element.getFirstChild().getNodeValue();
            System.out.println("性别:" + sex + " " + "名称:" + name);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

目录

  1. Java 使用 org.w3c.dom 解析 XML 文档
  2. 创建 XML 文档及元素
  3. 将文档 document 保存成 xml 文件
  4. 读取遍历 xml 文件
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 万方AIGC检测降重工具实测与选择指南
  • 基于 Qwen3-VL 与 LLaMA-Factory 的 Grounding 任务 LoRA 微调
  • 吴恩达:提升大模型性能的四个关键步骤
  • 本地部署 Wan2.1 视频生成模型全攻略
  • 基于 Python-Django 的台球厅管理收费系统
算法专题:模拟算法实战(替换问号、提莫攻击、Z 字形变换等)
  • Go Web 开发核心理论:HTTP、数据库与模板
  • 基于 OpenClaw 架构构建 C++ 量化交易引擎 QuantClaw 实战
  • OpenClaw Skill 指南:从零开始打造专属 AI 助手
  • 高鋒集團與 Web3Labs 如何賦能傳統企業 Web3 轉型
  • 机器人产业十年演进:从专用机械到通用具身智能
  • Android WebView 版本升级方案详解
  • Neo4j 数据导入实战:LOAD CSV、MATCH 与 MERGE 语法解析
  • AI 领域顶级教授课程推荐:吴恩达、李飞飞、李宏毅等深度学习资源
  • Prompt 工程实战:从基础结构到场景化应用
  • 基于 ASM+Maven 插件实现 Java 方法调用链分析
  • 基于 NVIDIA Jetson 的 HuggingFace LeRobot 端到端机器人学习实践
  • OpenClaw 清理 Skill 实战:基于 Rust+Tauri 构建安全沙箱
  • 深入剖析 LangChain:解构大模型的记忆增强策略
  • 深入理解与使用 Cookie:Web 开发关键机制
  • 相关免费在线工具

    • Keycode 信息

      查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

    • Escape 与 Native 编解码

      JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

    • JavaScript / HTML 格式化

      使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

    • JavaScript 压缩与混淆

      Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

    • Base64 字符串编码/解码

      将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

    • Base64 文件转换器

      将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online