xml概念:
xml (Extensible markup Language)可拓展标记语言
功能:存储数据
1.配置文件
2.在网络中传输数据
html和xml的区别:
1.xml的标记全是自定义的
2.xml的语法严格
3.xml是存储数据的,html是展示数据的
xml语法:
xml文件的后缀名是.xml
xml文件的第一行必须是定义的文档声明
<?xml version="1.0" encoding="utf-8" standalone='no'?>
version 版本号 必须写的属性
encoding 编码方式
standalone 是否独立 yes:不依赖其他文件
no:依赖其他文件
xml文档中有且只能有一个根标签
xml属性值必须用引号
xml标签必须关闭
xml标签名称严格区分大小写
约束:规定xml文档书写规则,作为框架的使用者:
1.能够在xml文件中引入约束文档
2.能够简单的读懂约束文档
约束的分类:
1.dtd约束 相对来说简单
2.Schema 一种复杂的约束
xml解析:
操作xml文档 将文档中的数据读取到内存中
读取:将文档中的数据读取到内存中
写入:将内存中的数据保存到xml文档中 持久化存储(一般不用,xml一般用来做配置文件,本意就是为了方便修改,需要修改时直接用记事本打开修改就好)
解析xml的方式
1.dom 将标记语言一次性加载进内存 再内存中形成一可棵DOM树
优点:操作方便,可以进行增删查改
缺点:消耗内存
2.SAX逐行读取 基于事件驱动 不占内存,只能读不能增删改(一般用这个,原因同上,我们主要 用来读取配置文件,需要删改时直接用记事本打开修改)
xml常见的解析器
1.JAXP sun公司解析器 支持dom和sax两种思想
2.DOM4J 支持两种思想
3.Jsoup 一套API 直接解析url地址,标记内容
4.PULL android操作系统内置的解析器 SAX方式
这里主要讲Jsoup的使用:
需要导入的jar包:jsoup-1.11.2.jar
首先我们建立一个xml文件做配置文件:
<?xml version="1.0" encoding="utf-8" standalone='no'?>
<students>
<student>
<name>张三</name>
<age>19</age>
<sex>男</sex>
</student>
</students>
然后使用jsoup来读取文件内容:
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
import java.io.File;
import java.io.IOException;
public class Demo {
public static void main(String[] args) throws IOException {
// 1.导jar包
// 2.获得文件路径
String path = Demo.class.getClassLoader().getResource("student.xml").getPath();
// 3.获得文件document对象
Document document = Jsoup.parse(new File(path), "utf-8");
// 4.获得对应标签的elements
Elements name = document.getElementsByTag("student");
// 5.输出元素
System.out.println(name);
}
}