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

JAVA高级第十章 XML

1.XML简介

XML(EXtensible Markup Language),可扩展标记语言

特点

XML与操作系统、编程语言的开发平台无关
实现不同系统之间的数据交换

作用

数据交互
配置应用程序和网站
Ajax基石

2.XML文档结构

<?xml version="1.0" encoding="UTF-8"?>
<books><!--图书信息 --><book id="bk101"><author>王珊</author><title>.NET高级编程</title><description>包含C#框架和网络编程等</description></book><book id="bk102"><author>李明明</author><title>XML基础编程</title><description>包含XML基础概念和基本作用</description></book>
</books>

3.XML标签

XML文档内容由一系列标签元素组成
<元素名 属性名=“属性值”>元素内容</元素名>

空元素:
<name>  </name>
<name></name>
<name/>
  • 属性值用双引号包裹
  • 一个元素可以有多个属性
  • 属性值中不能直接包含<、“、&
  • 不建议使用的字符:‘、>

4.XML编写注意事项

  • 所有XML元素都必须有结束标签
  • XML标签对大小写敏感
  • XML必须正确的嵌套
  • 同级标签以缩进对齐
  • 元素名称可以包含字母、数字或其他的字符
  • 元素名称不能以数字或者标点符号开始
  • 元素名称中不能含空格

5.属性命名空间

<?xml version="1.0" encoding="UTF-8"?>
<batchCompany xmlns="http://www.Aptech_edu.ac"xmlns:tea="http://www.tea.org"><batch-list><batch type="thirdbatch">第三批次</batch><batch tea:type="thirdbatch">第三批茶</batch><batch>午班批次</batch></batch-list>
</batchCompany>

除非带有前缀,否则属性属于所属的元素的命名空间

6.XML解析器

解析器类型

非验证解析器

  • 检查文档格式是否良好

验证解析器

  • 使用DTD检查文档的有效性

7.XML命名空间

XML命名空间的作用

解决在复杂、大型XML文件中,出现名称相同,但是含义不同的元素

<?xml version="1.0" encoding="UTF-8"?>
<cameras xmlns:canon="http://www.canon"xmlns:nikon="http://www.nikon.com"><canon:camera prodID="P663" name="Camera傻瓜相机"/><nikon:camera prodID=“K29B3” name=“Camera超级35毫米相机"/>
</cameras>

8.解析XML技术

DOM

  • 基于XML文档树结构的解析
  • 适用于多次访问的XML文档
  • 特点:比较消耗资源

SAX

  • 基于事件的解析
  • 适用于大数据量的XML文档
  • 特点:占用资源少,内存消耗小

DOM4J

  • 非常优秀的Java XML API
  • 性能优异、功能强大
  • 开放源代码

9.DOM解析XML

DOM介绍

文档对象模型(Document Object Model)
DOM把XML文档映射成一个倒挂的树
在这里插入图片描述

10.常用接口介绍

DOM解析包:org.w3c.dom

在这里插入图片描述

11.访问DOM树节点

显示“收藏信息.xml”文件中收藏的手机品牌和型号

<?xml version="1.0" encoding="GB2312"?>
<PhoneInfo><Brand name="华为"><Type name="U8650"/><Type name="HW123"/><Type name="HW321"/></Brand><Brand name="苹果"><Type name="iPhone4"/></Brand>
</PhoneInfo>

DOM解析XML文件步骤
1.创建解析器工厂对象
2.解析器工厂对象创建解析器对象
3.解析器对象指定XML文件创建Document对象
4.以Document对象为起点操作DOM树

12.保存XML文件

步骤

获得TransformerFactory对象
创建Transformer对象
创建DOMSource对象
包含XML信息
设置输出属性
编码格式
创建StreamResult对象
包含保存文件的信息
将XML保存到指定文件中

13.添加DOM节点

给手机收藏信息XML中添加新的手机信息
添加新的Brand:三星
给Brand节点添加新的子标签Type:Note4
将Brand添加到DOM树中

14.修改/删除DOM节点

给所有的Brand标签添加id属性

  • 获取Brand标签
  • 调用setAttribute()方法添加属性

删除Brand值为“华为”的标签

  • getElementsByTagName()方法获取Brand标签列表
  • 获得Brand值为“华为”的标签对象
  • 通过getParentNode()方法获得父节点对象
  • 调用父节点的removeChild()方法删除节点
http://www.lryc.cn/news/618655.html

相关文章:

  • 本地部署开源媒体中心软件 Kodi 并实现外部访问( Windows 版本)
  • UE5.3 C++ 动态多播实战总结
  • Mac M1探索AnythingLLM+Ollama+知识库问答
  • Flink Python API 提交 Socket 数据源的 WordCount 作业
  • 多轮问答与指代消解
  • 【Node.js从 0 到 1:入门实战与项目驱动】2.2 验证安装(`node -v`、`npm -v`命令使用)
  • 6深度学习Pytorch-神经网络--过拟合欠拟合问题解决(Dropout、正则化、早停法、数据增强)、批量标准化
  • 企业高性能web服务器(4)
  • 企业AI人工智能培训基础实战
  • 电子电路原理学习笔记---第5章特殊用途二极管---第2天
  • PaddlePaddle 模型训练技巧
  • Emscripten 指南:概念与使用
  • 《Qwen2.5-VL 》论文精读笔记
  • SpringMVC的原理及执行流程?
  • vue excel转json功能 xlsx
  • 如何简单捋一遍LLM结构
  • 【MAUI】在 .NET MAUI 中实现全局异常捕获的完整指南
  • 全国产飞腾d2000+复旦微690t信号处理模块
  • 「ECG信号处理——(23)基于ECG和PPG信号的血压预测」2025年8月12日
  • Android领域驱动设计与分层架构实践
  • 【Unity3D实例-功能-下蹲】角色下蹲(二)穿越隧道
  • 【vue(二)Vuex】
  • 解决微前端子应用嵌入后样式被覆盖
  • C++11语法(2)
  • python判断当天是否是当月最后一天
  • Python 常用的正则表达式
  • 未解决|服务的注册与发现|一个api怎么调用到另一个服务的API
  • Spring Boot部署万亿参数模型推理方案(深度解析)
  • gpt-5与gpt-5-fast
  • SQL 与 NoSQL 的核心区别