/*
* xml 可扩展性标记语言(标签可以自己定义)
* 1功能:存储数据
* 1,在配置文件 2,在网络中传输
* 1.1xml与html区别
* xml是自定义标签;html是预定义标签
* xml的语法严格,必须遵循规则;html语法松散--就算没有闭合标签等,浏览器会自动识别
* xml是存储数据的,html是展示数据的
* 2.语法
* 1.基本语法:
* 1.xml文档的后缀名 .xml
* 2.必须以<?xml version='1.0'?>开头,这句话必须要有且在文档第一行,且xml不向下兼容,所以市面上大多为1.0版本
* ,且xml为小写,(必须有版本,后可加encode等属性)
* 3.标签必须要正确闭合
* 4.xml标签名称区分大小写
* 5.属性值必须用引号括起来(不论单双引号)
* -----看有无错误可以直接将该文档拖入浏览器中,如果显示内容则无误,否则会报错
*
* 3.组成
* 1.开头文档声明<?xml version="1.0" encoding="utf-8"?>
* version:版本号,必须的属性
* encoding:编码方式。告知解析引擎当前文档使用的字符集,默认值:ISO-8859-1
* standalone:是否独立* 取值:yes:不依赖其他文件no:依赖其他文件
* 2. 指令(了解):结合css的
* * <?xml-stylesheet type="text/css" href="a.css" ?>
* 3. 标签:标签名称自定义的
* * 规则:
* * 名称可以包含字母、数字以及其他的字符 (正则表达式\w [a-zA-Z0-9_])
* * 名称不能以数字或者标点符号开始
* * 名称不能以字母 xml(或者 XML、Xml 等等)开始
* * 名称不能包含空格
* 4. 属性:
* id属性值唯一
* 5. 文本:cdata区<![CDATA[]]>
* * CDATA区:在该区域中的数据会被原样展示
* * 格式: <![CDATA[ 数据 ]]>
*
*★约束:规定xml文档的书写规范
* 分类 1.DTD
* 引入:本地<!DOCTYPE 根标签名 SYSTEM "文件位置(结束到dtd文件名.dtd)">
* 引入:网络<!DOCTYPE 根标签名 PUBLIC "文件名称""网络路径">
* <!ELEMENT students (student+) >
* <!ELEMENT student (name,age,sex)>
* <!ELEMENT name (#PCDATA)>
* <!ELEMENT age (#PCDATA)>
* <!ELEMENT sex (#PCDATA)>
* <!ATTLIST student number ID #REQUIRED>
* 对应
* <?xml version="1.0" encoding="utf-8" ?>
* <!DOCTYPE student1 SYSTEM "students.dtd">
* <student1>
* <student number="s11">
* <name>nicai</name>
* <age>2</age>
* <sex>2</sex>
* </student>
* </student1>
* 2.Schema----本身就是个xml文档,所以开头就是<?xml version=1.0"?>
* <students xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
* xmlns="http://www.baidu.com/xml"
* xsi:schemaLocation="http://www.baidu.com/xml student.xsd">
* 1.填写xml文档的根元素
* 2.引入xsi前缀. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
* 3.引入xsd文件命名空间. xsi:schemaLocation="http://www.baidu.com/xml student.xsd"
* 4.为每一个xsd约束声明一个前缀,作为标识 xmlns="http://www.baidu.com/xml"
*
* * 解析xml的方式:
* 1. DOM:将标记语言文档一次性加载进内存,在内存中形成一颗dom树
* 优点:操作方便,可以对文档进行CRUD的所有操作
* 缺点:占内存
* 2. SAX:逐行读取,基于事件驱动的。
* 优点:不占内存。
* 缺点:只能读取,不能增删改
* xml常见的解析器:
* 1. JAXP:sun公司提供的解析器,支持dom和sax两种思想
* 2. DOM4J:一款非常优秀的解析器
* 3. Jsoup:jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通
* 4. PULL:Android操作系统内置的解析器,sax方式的。
*
* Jsoup
* 1. 导入jar包
* 2. 获取Document对象
* 3. 获取对应的标签Element对象
* 4. 获取数据
* */
|
|