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);
    }
}