一.概念
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);