1.XML概念:Extensible Markup Language 可扩展标记语言

可扩展:标签都是自定义的。 <user> <student>

功能
  * 存储数据
    1. 配置文件
    2. 在网络中传输
xml与html的区别
  (1) xml标签都是自定义的,html标签是预定义。
  (2)xml的语法严格,html语法松散
  (3)xml是存储数据的,html是展示数据

2.XML 语法:
(1)基本语法:
  1. xml文档的后缀名 .xml
  2. xml第一行必须定义为文档声明
  3. xml文档中有且仅有一个根标签
  4. 属性值必须使用引号(单双都可)引起来
  5. 标签必须正确关闭
  6. xml标签名称区分大小写
(2)组成部分:
<1>文档声明
  1. 格式:<?xml 属性列表 ?>
  2. 属性列表:
    * version:版本号,必须的属性
    * encoding:编码方式。告知解析引擎当前文档使用的字符集,默认值:ISO-8859-1
    * standalone:是否独立
  * 取值:
    * yes:不依赖其他文件
    * no:依赖其他文件
<2>指令(了解):结合css的
* <?xml-stylesheet type="text/css" href="a.css" ?>
<3>标签:标签名称自定义的
  规则:
    * 名称可以包含字母、数字以及其他的字符
    * 名称不能以数字或者标点符号开始
    * 名称不能以字母 xml(或者 XML、Xml 等等)开始
    * 名称不能包含空格

<4>属性:
id属性值唯一
<5>文本:
CDATA区:在该区域中的数据会被原样展示
格式: <![CDATA[ 数据 ]]>

3.约束:规定xml文档的书写规则
(1)作为框架的使用者(程序员):
  <1>能够在xml中引入约束文档
  <2>能够简单的读懂约束文档

(2)分类:
(1)DTD:一种简单的约束技术
(2)Schema:一种复杂的约束技术

(3) 解析:操作xml文档,将文档中的数据读取到内存中
操作xml文档
  1. 解析(读取):将文档中的数据读取到内存中
  2. 写入:将内存中的数据保存到xml文档中。持久化的存储

解析xml的方式:
  1. DOM:将标记语言文档一次性加载进内存,在内存中形成一颗dom树
    * 优点:操作方便,可以对文档进行CRUD的所有操作
    * 缺点:占内存
  2. SAX:逐行读取,基于事件驱动的。
    * 优点:不占内存。
    * 缺点:只能读取,不能增删改

xml常见的解析器:
  1. JAXP:sun公司提供的解析器,支持dom和sax两种思想
  2. DOM4J:一款非常优秀的解析器
  3. Jsoup:jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。
  4. PULL:Android操作系统内置的解析器,sax方式的。

Jsoup:jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。

Jsoup 快速入门:
步骤:
  1. 导入jar包
  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; /**
* Json快速入门
*/
public class JSoupDemo1 {
public static void main(String[] args) throws IOException {
//1.获取document对象,根据xml文档
//1.1获取student.xml的path
String path = JSoupDemo1.class.getClassLoader().getResource("student.xml").getPath();
//1.2 解析xml文档,加载进内存,获取dom
Document document = Jsoup.parse(new File(path), "utf-8");
//2.获取元素对象
Elements elements = document.getElementsByTag("name");
System.out.println(elements.size());
//2.1获取第一个name的element对象
Element element = elements.get(0);
String name = element.text();
System.out.println(name); }
}

控制台输出:

对象的使用:
(1)Jsoup工具类,可以解析html或xml文档,返回Document
  * parse:解析html或xml文档,返回Document
  * parse​(File in, String charsetName):解析xml或html文件的。
  * parse​(String html):解析xml或html字符串
  * parse​(URL url, int timeoutMillis):通过网络路径获取指定的html或xml的文档对象
(2) Document:文档对象。代表内存中的dom树
* 获取Element对象
  * getElementById​(String id):根据id属性值获取唯一的element对象
  * getElementsByTag​(String tagName):根据标签名称获取元素对象集合
  * getElementsByAttribute​(String key):根据属性名称获取元素对象集合
  * getElementsByAttributeValue​(String key, String value):根据对应的属性名和属性值获取元素对象集合
(3) Elements:元素Element对象的集合。可以当做 ArrayList<Element>来使用
(4)Element:元素对象
  1. 获取子元素对象
    * getElementById​(String id):根据id属性值获取唯一的element对象
    * getElementsByTag​(String tagName):根据标签名称获取元素对象集合
    * getElementsByAttribute​(String key):根据属性名称获取元素对象集合
    * getElementsByAttributeValue​(String key, String value):根据对应的属性名和属性值获取元素对象集合

  2. 获取属性值
    * String attr(String key):根据属性名称获取属性值
  3. 获取文本内容
    * String text():获取文本内容
    * String html():获取标签体的所有内容(包括字标签的字符串内容)
(5)Node:节点对象
* 是Document和Element的父类

07 XML知识点--学习笔记的更多相关文章

  1. PHP操作XML文件学习笔记

    原文:PHP操作XML文件学习笔记 XML文件属于标签语言,可以通过自定义标签存储数据,其主要作用也是作为存储数据. 对于XML的操作包括遍历,生成,修改,删除等其他类似的操作.PHP对于XML的操作 ...

  2. Java后端高频知识点学习笔记1---Java基础

    Java后端高频知识点学习笔记1---Java基础 参考地址:牛_客_网 https://www.nowcoder.com/discuss/819297 1.重载和重写的区别 重载:同一类中多个同名方 ...

  3. xml基础学习笔记04

    今天继续xml学习,主要是:SimpleXML快速解析文档.xml与数组相互转换 .博客中只是简单的做一个学习记录.积累.更加详细的使用方法,可以查看php手册 1.SimpleXML快速解析文档 前 ...

  4. xml基础学习笔记05

    Xpath快速解析 如题一样,本篇主要说说Xpath快速查找XML文档   * Xpatn.Xquery,是专门用来查询xml的语言   * 查询xml非常快   Xpatn.Xquery,是专门用来 ...

  5. xml基础学习笔记03

    继续上篇xml学习笔记,坚持.坚持.再坚持啊.... 本篇主要记录: 35.XML节点的删除与修改 36集.用XML制作RSS订阅源 <?php /* 笔记: 35.XML节点的删除与修改 使用 ...

  6. xml基础学习笔记01

    注意:刚刚看了网上对于XML中的标签,节点和元素?到底应该怎么表述?起初我也有这个疑惑,现在我的想法是:下面出现node的应称作节点,节点对象.element应称作元素,毕竟这更符合英文的本意.至于标 ...

  7. xml基础学习笔记02

    接着上次的xml笔记01 ,记录一下如何DOM创建xml 一.由于没有特意来写博客,都是在程序中用注释的方法记录笔记,整理过来难免格式错误,排版什么的,大家好事看不懂就仔细看给出的代码加上注释,一定会 ...

  8. Struts2知识点学习笔记

    写给自己的话 好记性不如烂笔头,不可能说看了一遍视频就可以完全掌握的.留下这篇笔记,便于今后的复习吧. 1. 访问ServletAPI 访问ServletAPI(response,request,)的 ...

  9. xml增强学习笔记

    2 Dom4j修改xml文档 2.1 写出内容到xml文档 XMLWriter writer = new XMLWriter(OutputStream, OutputForamt) wirter.wr ...

随机推荐

  1. 转发: JS中的call()和apply()方法和区别 --小白变色记

    一.方法定义: apply:调用一个对象的一个方法,用另一个对象替换当前对象.例如:B.apply(A, arguments);即A对象应用B对象的方法. call:调用一个对象的一个方法,用另一个对 ...

  2. mssql 清理死锁

    -存储过程 我们可以使用以下存储过程来检测,就可以查出引起死锁的进程和SQL语句.SQL Server自带的系统存储过程sp_who和sp_lock也可以用来查找阻塞和死锁, 但没有这里介绍的方法好用 ...

  3. 基金名称中的ABC是什么意思,我们该如何选择?

    作者:牛大 | 公众号:定投五分钟 大家好,我是牛大.每天五分钟,投资你自己:坚持基金定投,终会财富自由! 大家经常会看到基金名称后面有字母ABC,这个表示什么意思呢,以及我们该如何选择呢?今天牛大给 ...

  4. oracle 游标使用详解

    -- 声明游标:CURSOR cursor_name IS select_statement--For 循环游标--(1)定义游标--(2)定义游标变量--(3)使用for循环来使用这个游标decla ...

  5. php for循环遍历索引数组

    遍历二字,从字面解释就是一个接一个全读访问一次,显示出来. 因为for循环是一个单纯的计数型循环,而索引数组的下标为整型的数值.因此,我们可以通过for循环来遍历索引数组. 我们知道索引数组下标为整型 ...

  6. C# 监控网速

    主要有两个类,其一是NetworkAdapter,该类的作用是获取本机网络适配器列表,并且可以通过该类的属性获取当前网速数据:其二是NetworkMonitor,该类是通过.NET的Performan ...

  7. Android入门教程(四)

    关注我,每天都有优质技术文章推送,工作,学习累了的时候放松一下自己. 本篇文章同步微信公众号 欢迎大家关注我的微信公众号:「醉翁猫咪」 学习Android要掌握Android程序结构,和通信技术,和如 ...

  8. Spyder汉化问题

    首先感谢李增海大神,以下内容来源于http://www.lizenghai.com 必备条件 1.已安装Spyder 2.Spyder版本在3.X以上 Spyder安装: 1.anaconda下,co ...

  9. Linux查看当前操作系统版本信息

    .Linux查看当前操作系统版本信息 cat /proc/version Linux version -.el6.x86_64 (mockbuild@c1bm.rdu2.centos.org) (gc ...

  10. Java实现RS485串口通信,发送和接收数据进行解析

    最近项目有一个空气检测仪,需要得到空气检测仪的实时数据,保存到数据库当中.根据了解得到,硬件是通过rs485进行串口通讯的,需要发送16进制命令给仪器,然后通过轮询来得到数据. 需要先要下载RXTX的 ...