xml基础

1.xml

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

特点

XML与操作系统、编程语言的开发平台无关

实现不同系统之间的数据交换

作用

数据交互

配置应用程序和网站

Ajax基石

1.1xml文档结构
java 复制代码
<?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>
1.2XML标签

XML文档内容由一系列标签元素组成

java 复制代码
<元素名 属性名="属性值">元素内容</元素名>

属性值用双引号包裹

一个元素可以有多个属性

属性值中不能直接包含<、"、&

不建议使用的字符:'、>

1.3xml编写注意事项

所有XML元素都必须有结束标签

XML标签对大小写敏感

XML必须正确的嵌套

同级标签以缩进对齐

元素名称可以包含字母、数字或其他的字符

元素名称不能以数字或者标点符号开始

元素名称中不能含空格

2.XML解析器

解析器类型

​ 非验证解析器

​ 检查文档格式是否良好

验证解析器

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

2.1解析XML技术

DOM

​ 基于XML文档树结构的解析

​ 适用于多次访问的XML文档

​ 特点:比较消耗资源

SAX

​ 基于事件的解析

​ 适用于大数据量的XML文档

​ 特点:占用资源少,内存消耗小

DOM4J

​ 非常优秀的Java XML API

​ 性能优异、功能强大

​ 开放源代码

3.DOM

DOM介绍

文档对象模型(Document Object Model)

DOM把XML文档映射成一个倒挂的树

常用接口介绍DOM解析包:org.w3c.dom

常用接口 常用方法 说明
Document:表示整个 XML 文档 NodeList getElementsByTagName(String Tag) 按文档顺序返回文档中指定标记名称的所有元素集合
Document:表示整个 XML 文档 Element createElement(String tagName) 创建指定标记名称的元素
Node:该文档树中的单个节点 NodeList getChildNodes() 获取该元素的所有子节点,返回节点集合
Element:XML 文档中的一个元素 String getTagName() 获取元素名称
3.1访问DOM树节点

DOM解析XML文件步骤

1.创建解析器工厂对象

2.解析器工厂对象创建解析器对象

3.解析器对象指定XML文件创建Document对象

4.以Document对象为起点操作DOM树

3.2保存xml文件

1.获得TransformerFactory对象

2.创建Transformer对象

3.创建DOMSource对象

​ 包含XML信息

4.设置输出属性

​ 编码格式

5.创建StreamResult对象

​ 包含保存文件的信息

6.将XML保存到指定文件中

相关推荐
喵了几个咪5 分钟前
GoWind CMS 拆解:在 Go 里给 TipTap 搭一套 Yjs 协同后端
开发语言·后端·golang
程序员清风23 分钟前
数据处理脚本工程化:日志、配置、命令行与测试
服务器·开发语言·数据库
文丑颜不良啊1 小时前
LeetCode876~900题目解析
java·leetcode
小大宇1 小时前
Vue知识点6-computed计算属性
前端·javascript·vue.js
程序员海军1 小时前
尤雨溪 : Vue 4 已经在规划中了!
前端·javascript·vue.js
aloha_7892 小时前
Java 基础、集合、异常与 JUnit 5 速查
java·junit·sqlserver
2601_949970692 小时前
HumanizeDuration 跨端三方库仓颉适配全流程
前端·javascript·flutter
知守观2 小时前
设计模式实战:从真实老项目中看标准模板方法与工厂的落地
java·spring·设计模式
2601_962885722 小时前
如何用 Python 把 K 线重采样成任意周期?
开发语言·python
独隅2 小时前
Claude API 实战教程:从入门到完整项目
android·java·数据库·claude·claude code