A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 g207776411 于 2018-5-21 15:12 编辑

Day_12 XML可扩展标记语言

Day_12    XML可扩展标记语言(HTML也是标记行语言)
XML的作用
  • 传输 和 存取数据
  • 任何语言都可以来解析
  • 软件的配置文件

数据交换:  例如我们在一个平台上可以获取其他网站上的信息 ,入支付宝是买电影票
xml的编写步骤
  • XML必须有关闭标签

    • 属性必须要用引号引起来
    • 不要瞎写,不要自创一派

  • XML的文档声明
  • XML的注释
  • XML的元素
  • XML的属性
  • XML的特殊字符和CDATA区

    • CDATA区


XML的解析方式
  • DOM: 一次性将文档加载到内存

    • 缺点:如果DOM文档非常大,加载DOM会导致内存的移除
    • 优点:对XML进行增删改的操作

  • SAX: 时间驱动的方式 逐行进行解析:

    • 优点:如果文档特别大,不会导致内存的溢出
    • 缺点:不能对文档进行增删改的操作

  • 针对这两种解析方式,不同的公司提供了不同的API的实现

    • 最常用的是 DOM4J
    • DOM4J     :开源组织提供了一套XML的解析的API-dom4j.
    • pull      :主要应用在Android手机端解析XML.


XML的解析
  • XML的解析: 从XML文中中获得想要的数据(通过代码完成的)
  • XML的解析方式()

    • DOM 解析: DOM: Document Object Model.
    • SAX 解析: Simple Api for XML..
    • DOM 和SAX的区别;

      • DOM是一次性加载,一次性全部解析      

        • 缺点:文档如果特别大,容易内存的溢出
        • 优点:对XML进行增删改的操作

      • SAX : 时间驱动的方式 ,一行一行进行解析

        • 缺点: 不能对文档进行增删改的操作
        • 优点:  如果文档特别大,不会导致内存的溢出.




解析:DOM4j+Xpath  SAXReader sr= new SAXReader();
  Document document =sr.read("代表这个xml文档的流");
  List<Node> list=document.selectNodes(String xpathExpression)
  Node node= document.selectSingnalNode(String xpathExpression)
  xpathExpression:
      //元素名称
      //元素名称[@属性名称]
      //元素名称[@属性名称='属性值']XML解析的步骤
  • [步骤一] 导入jar包.dom4j-1.6.1.jar
  • [步骤二]创建解析器
  • [步骤三] 解析文档获得代表文档的Document 对象
  • [步骤四] 获得跟节点
  • [步骤五] 从节点下查找其他节点

XML的约束的额概述:
什么是XML的约束    :就是用来约束XML的文档中可以出现哪些标签,不能出现哪些标签,标签中是否有顺序,出现的次数.
XML的约束         :用来规范XML的写法.
  • XML的约束的种类及区别?

​     *DTD 和 Schema :
​         * 区别:
​             1.DTD**语法是自成一体的.Schema语法就是XML的语法.**
​             2.Schema**的语法就是XML的语法所以更容易被解析器所解析.**
​             3.Schema**支持名称空间.**
​             4.Schema**有比DTD更加强大的语义和语法的约束.**
什么叫做名称空间
名称空间:一个XML只能引入一个DTD约束文档.使用了Schema约束XML文档,一个XML可以引入多个Schame的约束!!!
如果再多个Schema文档中定义了相同的属性名称 该怎么办?
名称空间类似于java中的package,通过名称空间区分标签属性来自于哪个文档的!!!通常名称空间唯一的不重复的即可,一般情况下使用一个URL地址表示一个名称空间

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马