XML基础入门

一.概念

  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公司解析器,支持domsax两种思想

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

posted on 2019-04-04 17:04  不酷也要写代码  阅读(219)  评论(0编辑  收藏  举报

导航