XML简介

1.1 XML 简介

定义: eXtensiable Markup Language

a) 可拓展标记语言, 是一种标记语言, 

b) xml是一种非常灵活的语言, 没有固定标签, 所有的标签都是自定义.

c) 通常被用于信息记录和传递. 因此, xml经常被用来作为配置文件.

<?xml version="1.0" encoding="UTF-8"?><!--xml声明版本和编码信息-->
<books>  <!--根元素-->

<!--图书信息-->   <!-注释--->
    <book id="bk101">  <!--属性-->
        <author>王珊</author>
        <title>.NET高级编程</title>
        <description>包含C#框架和网络编程</description>
<!--元素从一开始标签 元素内容和结束标签构成-->


    </book>

</book>

1.2 格式良好的xml

a) 声明信息, 用于描述xml的版本版本和编码方式.

<?xml version="1.0" encoding="UTF-8"?><!--xml声明版本和编码信息-->

b) xml有且仅有一个根元素.

c) xml中, 是大小写敏感的.

d) 标签是成对的, 而且要正确嵌套.

e) 属性值要加双引号

f) 注释写法

<!--注释-->

编辑器

作用

2. DTD

a) DTD, Document Type Definition, 文档类型定义

b) 用于约束xml的文档格式, 保证xml是一个有效的xml

c) DTD可以分为两种, 分别是内部DTD和外部DTD

2.2 使用DTD

a) 内部DTD定义语法如下, 

<!DOCTYPE 根元素 [元素声明]>

b) 元素声明语法:

<ELEMENT 元素名 [, 子元素...]>

c) 数量词

>+ : 表示出现1次或者多次, 至少1次.

>? : 表示出现0次或者1次.

>* : 表示出现任意次.

d) 属性声明语法

>属性类型: CDATA, 表示字符数据(character data)

>默认值:

        - #REQUIRED

        - #IMPILED

e) 带DTD的完整xml代码

<?xml version="1.0" encoding="UTF-8"?>
<!--  声明内部DTD -->
<!DOCTYPE score [
    <!ELEMENT scores (student*)>
    <!ELEMENT student (name, course, score)>
    <!ATTLIST student id CDATA #REQUIRED> <!-- IMPILED-->
    <!ELEMENT name (#PCDATA)>   <!-- 必须匹配 -->
    <!ELEMENT course (#PCDATA)>
    <!ELEMENT score (#PCDATA)>
]>

<scores>
    <student id="1">
        <name>王彤</name>
        <course>java</course>
        <score>89</score>
    </student>

    <student id="2">
        <name>张三</name>
        <course>java</course>
        <score>99</score>
    </student>


</scores>

2.2.2 外部DTD的定义

a) 创建一个外部独立.dtd文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE score [
    <!ELEMENT scores (student*)>
    <!ELEMENT student (name, course, score)>
    <!ATTLIST student id CDATA #REQUIRED> <!-- IMPILED-->
    <!ELEMENT name (#PCDATA)>   
    <!ELEMENT course (#PCDATA)>
    <!ELEMENT score (#PCDATA)>
]>

b) 在xml中引入外部DTD文档

<?xml version="1.0" encoding="UTF-8"?>
<!-- 引入外部DTD文件 -->
<!DOCTPE scores SYSTEM "scores.dtd">

<scores>
    <student id="1">
        <name>王彤</name>
        <course>java</course>
        <score>89</score>
    </student>

    <student id="2">
        <name>张三</name>
        <course>java</course>
        <score>99</score>
    </student>


</scores>

3. xml的解析

对xml文件进行操作, 包括床架 xml, 对xml文件进行操作

3.1.1 DOM 解析

是官方提供的解析方式, 基于xml树.

3.1.2 SAX解析

是民间的的解析方式, 基于时间的的解析.

3.1.3 JDOM解析

第三方提供, 开源的解析方式, 比DOM解析快.

3.1.4 DOM4J   4 for

第三方提供, 开源解析, 是JDOM的升级版, 主流使用.

DOM4J, 先去下载API 导入工程, 然后使用它.一般有两种操作, 创建xml或者操作xml, 配合java使用.包括和数据库配合使用, 在本地存储数据.

原理就是, 把xml文件转化成对象进行处理.

此外, xml和html并无差别, html其实就是已经被限制了元素类型和元素属性的xml.

上一篇:Java基础——XML


下一篇:mybatis