XML概述

2021-03-08  本文已影响0人  MCC12138

什么是XML

XML是指可扩展标记语言(EXtensible Markup Language),与HTML类似。设计的宗旨是传输数据,它没有规定的标签体,需要自定义标签,可以存储数据和共享数据。

基本语法

XML基本结构如下:

<?xml version="1.0" encoding="UTF-8"?>
<users>
    <user>
        <name>张三</name>
        <age>20</age>
    </user>
</users>

XML文档,首先要有声明,如上第一行<?xml ?>,其中version指该文档遵循的XML标准版本,encoding用于指明文档使用的字符编码格式。

标记必须闭合

若元素没有文本内容,则采用则采用自闭合的方式关闭节点,例如<weight/>

XML元素命名规则

元素是指成对标签出现的内容,且元素间存在层级关系,比如<name>元素指的是<name>张三</name><user>元素是:

    <user>
        <name>张三</name>
        <age>20</age>
    </user>

其中,<name>元素是<user>元素的子元素 ,<user>元素是<name>元素的父元素 。

XML属性

元素可以在开始标签中包含属性,类似HTML,属性(Attribute)提供关于元素的额外(附加)信息,它被定义在元素的标签中,且自身有对应的值,例如:

<?xml version="1.0" encoding="UTF-8"?>
<users language="java">
    <user>
        <name>张三</name>
        <age>20</age>
    </user>
</users>

只有一个根元素

空白被保留

元素内value的空白部分会被当做数据一样完整保留。例如:

<name>张三  ZhangSan</name>

解析出来内容为张三 ZhangSan,空白被保留。

注释写法

<!-- 单行注释 -->
<!--
多行注释
-->

CDATA的使用

CDATA是用于需要原文保留的内容,尤其是在解析XML过程中产生歧义的部分,例如拥有大量需要转义的字符时。其用法如下:

<![CDATA[
    内容
]]>

常见的XML解析模型

DOM解析

DOM在解析时把整个XML文件映射到Document的树形结构中,XML中的元素、属性、文本都能在Document中看清,但是它消耗内存、查询速度慢。

SAX解析

SAX是基于事件的解析,解析器在读取XML时根据读取的数据产生相应的事件,由应用程序实现相应的事件处理,所以它的解析速度快,内存占用少。但是它需要应用程序自身处理解析器的状态,实现起来比较麻烦,而且它只支持对XML文件的读取,不支持写入。

DOM4j解析(推荐)

DOM4j开源库使用接口和抽象类的方法,并使用了大量的 Collections类,提供一些替代方法以允许更好的性能或更直接的编码方法。不仅可读取,也可写入。下载地址DOM4j

上一篇 下一篇

猜你喜欢

热点阅读