【4-8】《XML与JSON》——XML、解析XML、SAX、DOM4J、XStream、JSON、Gson、Fastjson

XML与JSON

一、XML

1、XML概述

XML是可扩展标记语言(eXtensible Markup Language)。

  • 特性:
  1. xml具有平台无关性, 是一门独立的标记语言
  2. xml具有自我描述性
  • 使用XML进行:
  1. 网络数据传输
  2. 数据存储
  3. 配置文件
  • .XML文件是保存XML数据的一种方式

    XML数据也可以以其他的方式存在(如在内存中构建XML数据)

    不要将XML语言狭隘的理解成XML文件。

1.XML语法格式
  1. XML文档声明

    <?xml version="1.0" encoding="UTF-8"?>

  2. 标记 ( 元素 / 标签 / 节点)

    XML文档,由一个个的标记组成

    • 语法:

    ​ 开始标记(开放标记):<标记名称>

    ​ 结束标记(闭合标记):</标记名称>

    • 标记名称:自定义名称

    必须遵循以下命名规则

    1. 名称可以含字母、数字以及其他的字符

    2. 名称不能以数字或者标点符号开始

    3. 名称不能以字符 “xml”(或者 XML、Xml)开始

    4. 名称不能包含空格,不能包含冒号(:)

    5. 名称区分大小写

    • 标记内容: 开始标记与结束标记之间 ,是标记的内容.

      例如 ,我们通过标记, 描述一个人名:

      <name>人名</name>

  3. 一个XML文档中, 必须有且且仅允许有一个根标记

    <names>
    	<name>张三</name>
    	<name>李四</name>
    </names>
    
  4. 标记可以嵌套,但是不允许交叉

    <person>
    	<name>李四</name>
    	<age>18</age>
    </person>
    
  5. 标记的层级称呼

    (子标记、父标记 、兄弟标记、后代标记、祖先标记)

    <persons>
    	<person>
    		<name>李四</name>
    		<length>180cm</length>
    	</person>
    	<person>
    		<name>李四</name>
    		<length>200cm</length>
    	</person>
    </persons>
    

    name是person的子标记,也是person的后代标记

    name是persons的后代标记

    name是length的兄弟标记

    person是name的父标记

    persons是name的祖先标记

  6. 标记名称 允许重复

  7. 标记除了开始和结束,还有属性

    标记中的属性,在标记开始时描述,由属性名和属性值组成

    • 格式:

      ​ 在开始标记中描述属性

      ​ 可以包含0-n个属性,每一个属性是一个键值对

      属性名不允许重复,键与值之间使用等号连接,多个属性之间使用空格分割

      属性值必须被引号引住

    <persons>
    	<person id="10001" groupid="1">
    		<name>李四</name>
    		<age>18</age>
    	</person>
    	<person id="10002" groupid="1">
    		<name>李四</name>
    		<age>20</age>
    	</person>
    </persons>
    
  8. 注释

    注释不能写在文档文档声明前

    注释不能嵌套注释

    • 格式:

      ​ 注释开始:<!--

      ​ 注释结束:-->

    例:

    描述一组图书books,至少包含3本书
    图书book包含:图书名称name、图书简介info,以及属性id

    <?xml version="1.0" encoding="UTF-8" ?>
    <books>
        <book id="1">
            <name>小王子</name>
            <info>小王子遨游太空的梦幻故事。</info>
        </book>
        <book id="2">
            <name>阿凡提</name>
            <info>阿凡提智斗吝啬的地主。</info>
        </book>
        <book id="3">
            <name>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值