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保存到指定文件中

相关推荐
安冬的码畜日常13 分钟前
【AI 加持下的 Python 编程实战 2_10】DIY 拓展:从扫雷小游戏开发再探问题分解与 AI 代码调试能力(中)
开发语言·前端·人工智能·ai·扫雷游戏·ai辅助编程·辅助编程
小刘同学++16 分钟前
Qt 处理 XML 数据
xml·qt
小杨升级打怪中18 分钟前
前端面经-JS篇(三)--事件、性能优化、防抖与节流
前端·javascript·xss
清风细雨_林木木22 分钟前
Vue开发网站会有“#”原因是前端路由使用了 Hash 模式
前端·vue.js·哈希算法
朝阳58135 分钟前
Rust项目GPG签名配置指南
开发语言·后端·rust
朝阳58137 分钟前
Rust实现高性能目录扫描工具ll的技术解析
开发语言·后端·rust
程高兴38 分钟前
基于Matlab的车牌识别系统
开发语言·matlab
zhang238390615444 分钟前
IDEA add gitlab account 提示
java·gitlab·intellij-idea·idea
鸿蒙布道师1 小时前
OpenAI为何觊觎Chrome?AI时代浏览器争夺战背后的深层逻辑
前端·人工智能·chrome·深度学习·opencv·自然语言处理·chatgpt
袈裟和尚1 小时前
如何在安卓平板上下载安装Google Chrome【轻松安装】
前端·chrome·电脑