XML与JSON

这篇博客介绍了XML和JSON这两种数据交换格式,详细讲解了XML的四种解析方式(SAX、DOM、JDOM、DOM4J)及其优缺点,并通过案例展示了DOM4J的解析和生成XML的步骤。此外,还简单介绍了JSON的基本格式和Java中与JSON相关的库的使用。
摘要由CSDN通过智能技术生成

XMLJSON

XML

简介

可扩展标记语言(eXtensible Markup Language)。
特性:
   1. xml具有平台无关性, 是一门独立的标记语言.
   2. xml具有自我描述性

为什么学习XML

1. 网络数据传输. 
   2. 数据存储 
   3. 配置文件  

XML文件

XML文件是保存XML数据的一种方式
XML数据也可以以其他的方式存在(如在内存中构建XML数据)。
不要将XML语言狭隘的理解成XML文件。

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>
       反例:
           <name>李四</name>
           <name>麻子</name>
4. 标记可以嵌套, 但是不允许交叉.
       正例:
           <person>
               <name>李四</name>
               <age>18</age>
           </person>
       反例:
           <person>
               <name>李四<age></name>
               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的后代标记.
案例: 
语法进阶CDATA (了解) 
       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>
    
</books>

语法进阶CDATA (了解)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值