本帖最后由 小石姐姐 于 2018-12-28 09:02 编辑  
 
XML         1.概念  
                可扩展标记语言  
                        *可拓展: 标签都是自定义的  
                2.功能   
                        *存储数据  
                                **1.配置文件去使用*** 可以作为一种数据协议进行传输  
                                **2.可以作为一种数据协议进行传输数据(跨平台)  
                3.与html的区别  
                        1.xml标签都是自定义的,html标签是预定义.  
                        2.xml的语法严格,html语法松散  
                        3.xml是储存数据的,html是展示数据  
        *w3c 万维网联盟   
 
        2.语法:  
                *基本语法  
                xml文档的后缀名是:  .xml  
                xml第一行必须定义为文档声明  
                xml文档中有且只有一个根标签  
                标签中可以存在属性和内容  
                属性值必须使用(单双都可以)引起来  
                标签必须有结束语  
                xml标签名称区分大小写  
                后缀为.xml  
                *快速入门  
 
                *组成部分   
                        1.文档声明:  
                                格式: <?xml属性列表?>  
                                属性列表:    
                                        version 版本号                         必须的属性  
                                        encoding 编码方式                告知解析引擎当前文档使用的字符集,默认值ISO-8859-1  
                                        standalone  是否独立  
                                          取值:  
                                          yes 不依赖其他文件  
                                            no  依赖其他文件  
                        2.指令  
 
                        3.标签  
 
 
 
                        4.属性  
                                id属性值唯一   
                        5.文本  
                                CDATA区:在该区域中的数据会被原样显示  
                                        格式:<![CDATA[   
                                                ...  
                                        ]]>  
 
 
 
                约束:规定xml文档的书写规则  
                        座位框架的使用者(程序员):  
                                1.能够在xml中引入约束文档  
                                2.能够简单的读懂约束文档  
 
                分类:  
                        1.DTD 简单的约束技术  
                        引入dtd 文档到xml文档中  
                                内部dtd 将约束规则定义在xml文档中   
                                外部dtd 将约束的规则定义在外部的dtd文档中  
                                        本地: <!DOCTYPE 根标签名 SYSTEM  "dtd文件的位置"  
                                        网络:<!DOCTYPE 根标签名 Public "dtd文件名字" "dtd文件的位置URL">  
                        缺陷:  
 
                2.schema: 一种复杂的约束技术  
                        * 引入:  
                                1.填写xml文档的根元素  
                                2.引入xsi前缀.  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
                                3.引入xsd文件命名空间.  xsi:schemaLocation="http://www.itcast.cn/xml  student.xsd"  
                                4.为每一个xsd约束声明一个前缀,作为标识  xmlns="http://www.itcast.cn/xml"   
 
                                      [Java] 纯文本查看 复制代码  <students   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"[/align]
                                        xmlns="http://www.itcast.cn/xml"
                                        xsi:schemaLocation="http://www.itcast.cn/xml  student.xsd"> 
        *****dtd约束和schema的区别  
                1.dtd约束文件后缀名是.dtd,schema约束文件后缀.xsd  
                2.schema约束比dtd约束功能更强大  
                3.dtd约束只能引入一个约束文件,schema约束可以引入多个文件  
                4.schema约束支持命名空间(名称空间) namespace   
 
 
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的操作方法来取出和操作数据。
                * 快速入门:
                        * 步骤:
                                1. 导入jar包
                                2. 获取Document对象
                                3. 获取对应的标签Element对象
                                4. 获取数据
        
        对象的使用:
                Jsoup:工具类,可以解析html或xml文档,返回Document
                        *parse解析html或者xml文档.
                        * 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的父类
 
                                                
* 快捷查询方式:                             
        1. selector:选择器
        * 使用的方法:Elements        select?(String cssQuery)                                                                * 语法:参考Selector类中定义的语法
        2. XPath:XPath即为XML路径语言,它是一种用来确定XML(标准通用标记语言的子集)文档中某部分位置的语言
        * 使用Jsoup的Xpath需要额外导入jar包。
        * 查询w3cshool参考手册,使用xpath的语法完成查询
                                                                        
                        
        *******
                
什么是xml
        可扩展标记语言
xml的作用
        **1.作为配置文件存在
        **2.可以作为一种数据协议进行传输数据(跨平台)
                                                移动端  xmpp协议
                                                后台        webservice
        3.定义有格式的数据
        
        xml缺点
                浪费流量
                
                
xml语法格式=
        <?xml version="1.0" encoding="utf-8" ?>
        <根标签>
                <子标签 属性="">
                        内容  
                </子标签>
        </根标签>
        
        注意:
                1.<?xml version="1.0" ?>只能放在第一行第一列
                2.一个xml文档中只能有一个根标签                                           
                3.根标签中支持子标签
                4.标签中可以存在属性和内容
                5.文件的后缀为.xml
                6.encoding默认值是ISO-8859-1
                
        CDATA
                <![CDATA[
                        内容
                ]]>
 
                 约束:限制
 
dtd约束和schema约束的区别!!!!!
                1.dtd约束文件后缀名是.dtd,schema约束文件后缀.xsd
                2.schema约束比dtd约束功能更加强大
                3.dtd约束只能引入一个约束文件,schema约束可以引入多个文件
                4.schema约束支持命名空间(名称空间) namespace
                        
                
xml的解析方式(原理!!!)
        1.dom解析
                把文档全部加载,可以增删改查,可能导致内存溢出
        2.sax解析
                逐行解析,解析是基于事件驱动的,只能读取,对内存开销小,速度快
                
                
xml的解析器都有哪些(解析xml的jar包)
        jaxp
        *dom4j
        *jsoup(咱们学习的)
        pull(基于安卓!!)
 
        (获取而不是修改)
1.jar包放在项目根目录下的libs目录下
2.要解析的xml文件在src目录下
        url url =        类名.classgetclassloader().getresource("xml");
        string s=url.getpath;
                        
                        
        jsoup 使用步骤
                1.加载xml文件获取document对象
                2.通过document对象获取指定标签
                3.通过指定标签可以继续查找子内容
                4.通过标签获取属性值或者是内容  -->区分属性和内容
                        attr("属性名称");
                        text();        内容
                        html();        带标签的内容
                        
                        
                        
                        
                        
                        
                        
  |