zoukankan      html  css  js  c++  java
  • 我的学习之路_第十六章_xml

    【XML】

    可扩展的标记语言

    作用:存放数据、配置文件

    【XML的语法】

    xml的文件扩展名必须为: xml

    xml的内容必须满足以下要求:

    1.固定的文档声明
    2.合格的元素和属性
    3.正确的注释
    4.符合要求的特殊字符编写规则

    ●文档声明 ( <?xml version="1.0" encoding = "UTF-8" ?> )

    1.文档声明必须以<?xml 开头, 以?>结束
    2.文档声明必须从文档的0行0列位置开始
    3.文档声明的两个属性:
    a. version: 指定的xml文档版本.必须属性
    b. encoding: 指定当前文档的编码. 可选属性,默认值为:UTF-8

    ●元素 <bean> </bean>

    1.元素是xml文档中重要的组成部分,
    2.普通元素的结构开始标签、元素体、结束标签组成.
    3.元素体:元素体可以是元素,也可以是文本.
    4.空元素:空元素只有开始标签,没有结束标签,但元素必须自己闭合.<a/>
    5.元素命名:
    a) 区分大小写
    b) 不能使用空格键,不能使用冒号
    c) 不建议以xml开头,不管大写还是小写.
    6.格式良好的xml文档,必须只有一个根元素.(文档声明下来的第一个元素就是根元素)

    ●属性(attribute)
    <Person id="g001" name="二狗" ></Person>
    1.属性是元素的一部分,必须出现在元素开始标签中,必须用空格分开,多个元素之间也用空格隔开
    2.属性的定义格式:属性名=属性值,其中属性值必须用单引或者双引
    3.一个元素可以有0-n个属性,但是一个元素中,不能出现同名属性
    4.属性名不能使用空格,冒号等特殊符号,而且必须以字母开头
    5.多个属性之间没有先后顺序

    ●注释

    xml的注释,以<!-- 开始, 以--> 结束.注释内容不会被xml解析器解析!


    【xml的转义字符】

    < &lt;

    > &gt;

    " &quot;

    ' &apos;

    & &amp;

    列入 1<3 在xml中 1 &lt;3

    【CDATA】

    格式 <![CDATA[

    里面可以写任何内容,
    都会以文本的格式出现
    里面的出现的字符都无需转义

    ]]>

    作用:提高了xml文档的可读性

    【XML约束】

    在xml技术里,可以编写一个文档来约束一个xml文档的书写规范,这称之为xml约束

    常见的约束有 DTD , Schena

    DTD语法:

    ▲ 文档声明
    1.内部DTD,在xml文档内部嵌入,值对当前xnl有效
    2.外部DTD- 本地DTD,DTD文档在本地系统上,公司内部自己项目使用.(SYSTEM )
    3.外部DTD- 公共DTD,DTD文档在网络上,一般都有框架提供(PUBLIC )

    公共DTD包含5部分内容:
    1.<!DOCTYPE:固定格式
    2.beans : 规定根元素叫beans
    3.PUBLIC : 公共的,说明DTD 约束文档来源网络
    4."-//SPRING//DTD BEAN 2.0//EN": 约束文档的名称,有框架写好提供.
    5.http://www.springframework.org/dtd/spring-beans-2.0.dtd:约束文档在网络上的位置

    ▲ 元素申明

    ? 表示该对象可以出现0次或者1次,
    + 表示该对象可以出现1次或者1次以上
    * 表示可以出现任意次数
    ( ) 一组数据
    | 选择关系,只能在多个元素之间选择一个
    , 顺序关系,规定:a,b,c 写xml文档只能按照abc顺序编写

    【使用DTD约束文档的步骤】

    1.每一个DTD约束文档中都会有一行代码以 <!DOCTYPE开头,赋值过来放在xml文档中
    a.!DOCTYPE : 固定的DTD约束文档的格式
    b.beans : 规定xml文档中的根元素只能叫beans
    c.SYSTEM : 系统, dtd约束文档中来源本地的操作系统
    d: "bean.dtd" : 约束文档的位置,我们使用的约束文档在当前文件夹下,可以使用"bean,dtd"
    2.根据根元素的名字,写出根元素
    3.鼠标放在根元素上/或者按F2,根据提示写出xml文档

    Schema约束

    ▲命名空间

    命名空间是用来处理元素和属性的名称冲突问题


    约束文档和xml的关系
    约束 约束
    官方文档---->自定义schema文档---->xml文档


    声明命名空间:

    默认命名空间:<xxx xmlns=" " >, 使用<标签>
    显式命名空间:<xxx xmlns:别名=" "> , 使用<别名:标签>

    【Schema 约束文档的使用】:

    1.每一个schema约束文档,都必须有一个命名空间(namespace)
    起名要求:全球唯一
    使用域名(网址) 命名:http://www.itcast.cn/web01/01
    bean-schema.xsd文档中的命名空间
    targetNamespace="http://itcast.cn/bean"
    2.在xml文档中声明命名空间
    默认声明:
    xmlns="http://www.itcast.cn/bean"
    <bean></bean>
    显示声明:
    xmlns:my="http://www.itcast.cn/bean"
    <my:bean></my:bean>
    3.声明schema约束文档的位置
    先声明官方文档的位置
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    根据官方文档声明自定义schema文档的位置
    xsi:chemaLocation="http://www.itcast.cn/bean bean-schema.xsd"
    http://www.itcast.cn/bean : 命名空间
    bean-schema.xsd:schema文档的位置

    【XML解析】

    开发中比较常见的解析方式有三种:
    1.DOM : 要求解析器把整个xml文档装载到内存,并解析成一个Document对象
    a) 优点 : 元素与元素之间保留结构关系,所以可以进行增删改查操作.
    b) 缺点 : xml文档过大,可能出现内存溢出显示
    2.SAX : 是一种速度更快,更有效的方法.它逐行扫描文档,一边扫描一边解析
    a) 优点 : 处理速度快,可以处理大文件
    b) 缺点 : 只能读,逐行后将释放资源.
    3.PULL : Android内置的xml解析方式,类似sax.
    SAX(推): 就像一座山,逐层推掉,想要的保留下来,不想要的就扔掉.
    PULL(拉) : 把想要的数据拉过来,不需要的数据连拉都不拉,直接扔掉

    常见的解析发开包:

    ● JAXP: sum公司提供支持DOM和SAX开发包

    ● JDom: dom4j兄弟

    ● jsoup: 一种处理 HTML特定解析开发包

    ● dom4j: 比较常见的解析开发包,hibernate底层采用(主要用这个)


    【使用dom4j解析xml文档】

    1.SAXReader对象(dom4j核心类)
    利用方法 read(...)加载执行xml文档
    2.Document对象
    返回值 Element getRootElement() 获取根元素
    3.Element对象
    返回值 Element[] elements(...) 获取的指定名称的所有元素.可以不指定名称
    element(...) 获得指定名称第一个子元素,可以不指定名称
    getName() 获得当前元素的元素名
    attributeValue(...) 获得指定属性名的属性值
    elementText(...) 获得指定名称子元素的文本值
    getText() 获得当前元素的文本内容

  • 相关阅读:
    ubuntu解压时中文出现乱码
    centos7下搭建高匿HTTP代理
    nmon监控分析
    oracle12c
    Linux下卸载Oracle 11g
    Oracle 11g修改字符集
    centos下静默安装oracle11g
    Hive基础之Hive开启查询列名及行转列显示
    Hive基础之HiveServer2 JDBC的使用
    JavaScript对象的创建总结
  • 原文地址:https://www.cnblogs.com/jia-/p/7071631.html
Copyright © 2011-2022 走看看