一.概念
XML: Extensible markup Language,可拓展标记语言
功能:存储数据
1.配置文件
2.在网络中传输数据
html和xml的区别:
1.xml标记全是自定义的
2.xml的语法严格
3.xml是存储数据,html是展示数据
二.语法
1.xml文档的后缀名是.xml
2.xml第一行必须是定义的文档声明
<?xml version="1.0" encoding="utf-8" standalone='no' ?>
注:version:版本号,必须写的属性
encoding:编码方式
standalone:是否独立,yes:不依赖其他文件,no:依赖其它文件
3.xml文档中有且只能有一个根标签
4.属性值必须用引号
5.标签必须关闭
6.xml标签名称区分大小写
7.约束:规定xml文档书写规则。两种约束分别为(DTD约束和schema)
三.解析
即操作xml文档,将文档中的数据读取到内存中。
1.操作xml文档
读取:将文档中的数据读取到内存中
写入:将内存中的数据保存到xml文件中,持久化的存储
2.解析xml的方式
方式一:dome将标记语言一次性加载进内存,在内存中形成一颗DOM树。
优点:操作方便,可以进行CRUD操作
缺点:消耗内存
方式二:SAX逐行读取,基于事件驱动,不占内存,只能读取不能增删改。
3.常见的解析器
JAXP:sun公司解析器,支持dom和sax两种思想
DOM4J:
Jsoup:一套API 直接解析url 地址和标记内容
PULL:Android 操作系统内置的解析器,解析方式是SAX 方式
4.Jsoup入门程序
使用步骤:
1 导包 jsoup-1.11.2包 ,编写XML文件(放在src下)
2获得Document 对象
3 获取对应的标签Element
4 获取数据
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements; import java.io.File;
import java.io.IOException; public class Demo1Jsoup {
public static void main(String[] args) throws IOException {
// 2获得Document 对象
String path = Demo1Jsoup.class.getClassLoader().getResource("st.xml").getPath();
Document document = Jsoup.parse(new File(path), "utf-8");
// 3 获取对应的标签Element
Elements elements = document.getElementsByTag("name");
// System.out.println(elements);
System.out.println(elements.size());
//得到第二个name标签的值
Element name = elements.get(1);
// 4 获取数据
System.out.println(name);
}
}
5.对象的使用
★Jsoup工具类可以解析XML、HTML文档,返回Document对象。通过parse也可以解析XML文档,parse(URL url,int timeoutMills)。
★通过Document文档对象获得对应的标签Element。getElementByTag("标签名");getElementById(String id);
获得属性值:
String attr(String key)通过属性名获取值
只获得文本内容:
String text();
String html(); 包括标签的字符串内容
★selector选择器:
select(String cssQuery);