- html的标签是别人定好的,而xml是自定义的,可拓展的
- 优势在于存储数据,比配置文件properties方便
- xml 数据可以在网络中跨语言,跨平台传输
- xml是存储数据,html是展示数据
<?xml version="1.0" encoding="UTF-8"?>
-<students>
-<student number="s001">
<name>zhangsan</name>
<age>abc</age>
<sex>hehe</sex>
</student>
-<student number="s002">
<name>lisi</name>
<age>24</age>
<sex>female</sex>
</student>
</students>
xml组成部分
<?xml version="1.0" encoding="UTF-8"?>
xml约束
- 约束文档,规定xml文档的书写规则
- 程序员需要做的是,在xml中引入约束文档,能够简单的读懂约束文档
dtd文档
<!ELEMENT students (student+) >
<!ELEMENT student (name,age,sex)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
<!ELEMENT sex (#PCDATA)>
<!ATTLIST student number ID #REQUIRED>
从外部引入dtd文件
<!DOCTYPE students SYSTEM "student.dtd">
XML解析
- 操作xml文档,将数据读取到内存到内存中
解析xml的方式 - DOM树,一次性加载进内存,操作方便,占内存
- SAX,逐行读取,优点不占内存(手机),只能读取,读一行释放一行,不能增删
xml常见解析器
- JAXP
- DOM4J
- JSOUP
- PULL
JSOUP
/**
* Jsoup快速入门
*/
public class JsoupDemo1 {
public static void main(String[] args) throws IOException {
//2.获取Document对象,根据xml文档获取
//2.1获取student.xml的path
//利用类对象获取路径,使用类加载器
String path = JsoupDemo1.class.getClassLoader().getResource("student.xml").getPath();
//2.2解析xml文档,加载文档进内存,获取dom树--->Document
Document document = Jsoup.parse(new File(path), "utf-8");
//3.获取元素对象 Element
Elements elements = document.getElementsByTag("name");
System.out.println(elements.size());
//3.1获取第一个name的Element对象
Element element = elements.get(0);
//3.2获取数据
String name = element.text();
System.out.println(name);
}
}