当前位置: 首页 > news >正文

java语言中的XML解析

一、XML的基础概念

        XML(eXtensible Markup Language,可扩展标记语言) 是一种用于存储和传输数据的标记语言,由万维网联盟(W3C)于 1998 年发布。它的设计初衷是分离数据内容与展示形式,并实现跨平台的数据交换,其核心思想源于 SGML(标准通用标记语言),但语法更为简洁。

二、XML文件的特点

        1、平台无关性:不依赖特定的操作系统或软件,可在不同环境中解析和使用

        2、可扩展性:用户可自定义标签和结构,无需遵循固定标准

        3、结构化数据存储:采用树形层级结构,便于数据的组织和解析

三、XML语言的语法规则

        1、第一行通常为 XML 声明,指定版本和编码(常见为 UTF-8)。

        2、文档结构方面,必须有一个根节点包裹所有内容

        3、所有标签均为闭合标签,且标签之间不能交叉嵌套

        4、标签区分大小写,如<Title>和<title>是不同的标签

        示例:定义一个XML文件

        

四、XML文件的解析方式

        1、DOM解析:将整个XML文件加到内存中,构建树形结构,便于随机访问节点,但消耗内存较高

        2、XML解析库:如java语言中的DOM4J

        3、SAX解析:流式解析,按顺序读取文档,适合处理大文件,但无法反向访问节点。

示例:使用DOM4J解析XML文件(解析上述XML文件)

        1、单个路径解析

        运行结果:

        

        2、若需要解析所有stu节点中的信息,首先通过selectNodes()方法获取所有stu节点,再使用循环遍历所有节点

        运行结果:

        

五、场景案例:构建XML文件,存储连接和操作数据库的信息,java通过解析XML文件,按照需求就可以执行不同的数据库操作

        1、数据库中准备两张待操作的表

                表:t_stu

                

                表:t_goods

        ​​​​​​​        

        2、设计XML文件,存储的信息有连接和操作数据库

        

        3、设计Info类,存储解析出来的连接数据库信息

        

        4、构建类ParseXML,用于解析XML文件,使用hashtable存储数据库信息

                解析连接数据库节点

                解析sql节点

                为该类中的成员创建set,get方法

        5、设计类Stu,存储表t_stu的信息

        6、设计类Goods,存储t_goods表中信息

        

        7、构建类DB,执行数据库操作

        运行结果:

        


http://www.lqws.cn/news/510373.html

相关文章:

  • 解决Fedora21下无法使用NWJS网页透明效果的问题
  • mybatisPlus动态表前缀
  • 磁悬浮轴承遇上“热浪”挑战:多参数自适应补偿策略揭秘
  • [学习] C语言编程中线程安全的实现方法(示例)
  • day041-web集群架构搭建
  • 棋盘格标定板和圆形标定板的优劣性
  • windows 上 build 时,微软给出的 vcpkg 工具,如何使用
  • MySQL 8.x配置MGR高可用+ProxySQL读写分离(三):配置ProxySQL主从分组信息
  • [3D-Portfolio] docs | js集中式配置 | React组件 | 组件嵌套
  • [附源码+数据库+毕业论文]基于Spring+MyBatis+MySQL+Maven+jsp实现的超市库存商品管理系统,推荐!
  • 16、nrf52840蓝牙学习(唯一ID加密与解密)
  • 华为认证预约考试、考试时长、取消/改期、补考时间汇总
  • C++ <vector>
  • Redis 乱码和LocalDateTime类型缓存问题
  • 鸿蒙开发深入解析:Data Ability 数据共享机制全面指南
  • 工业弧焊机器人气保焊节气装置
  • 搭建智能问答系统,有哪些解决方案,比如使用Dify,LangChain4j+RAG等
  • 【Altium】原理图位号自动标注
  • spring中的切面类实践
  • WPF CommunityToolkit.Mvvm
  • 【技术难题】el-table的全局数据排序实现示例,不受分页影响,以及异步请求带来的页面渲染问题
  • 针对基于深度学习的侧信道分析(DLSCA)进行超参数的贝叶斯优化
  • VIVADO导出仿真数据到MATLAB中进行分析
  • python基础(字符串-复习)
  • 关于素数、唯一分解等内容的详细讲解(从属于GESP五级)
  • vscode + Jlink 一键调试stm32 单片机程序(windows系统版)
  • HarmonyOS Next的HiLog日志系统完全指南:从入门到精通
  • I2C设备树参数详解
  • 猿人学js逆向比赛第一届第十三题
  • 多线程的同步