CHAPTER-17 XML 和JSON

XML 和 JSON


XML( EXtensible Markup Language)

可扩展标记语言

特点

XML与操作系统、编程语言的开发平台无关

实现不同系统之间的数据交换

作用

数据交互

配置应用程序和网站

Ajax基石

XML文档内容由一系列标签元素组成

<元素名 属性名="属性值">元素内容</元素名>

空元素:

属性值用双引号包裹

一个元素可以有多个属性

属性值中不能直接包含 < 、" 、 &

不建议使用的字符: ’ 、 >

XML中的转义符列表

符号转义符
<& lt ;
>& gt ;
"& quot ;
& apos ;
&& amp ;

当元素中出现很多特殊字符时,可以使用CDATA节,CDATA是不应该由XML解析器分析的文本数据

XML编写注意事项

所有XML元素都必须有结束标签

XML标签对大小写敏感

XML必须正确的嵌套

同级标签以缩进对齐

元素名称可以包含字母、数字或其他的字符

元素名称不能以数字或者标点符号开始

元素名称中不能含空格

XML解析器

解析器类型
非验证解析器

检查文档格式是否良好

验证解析器

使用DTD检查文档的有效性

XML命名空间

XML命名空间的作用

解决在复杂、大型XML文件中, 出现名称相同, 但是含义不同的元素

DOM解析XML

DOM介绍

文档对象模型(Document Object Model)

DOM把XML文档映射成一个倒挂的树

DOM

基于XML文档树结构的解析

适用于多次访问的XML文档

特点:比较消耗资源

DOM4J

非常优秀的Java XML API

性能优异、功能强大

开放源代码

SAX

基于事件的解析

适用于大数据量的XML文档

特点:占用资源少、内存消耗大

常用接口介绍

DOM解析包:org.w3c.dom

常用接口常用方法说明
Document:表示整个XML文档NodeList getElementsByTagName(String Tag)按文档顺序返回文档中指定标记名称的所有元素集合
Document:表示整个XML文档Element createElement(String tagName)创建指定标记名称的元素
Node:该文档树中的单个节点NodeList getChildNodes()获取该元素的所有子节点, 返回节点集合
Element:XML文档中的一个元素String getTagName()获取元素名称
访问DOM树节点

DOM解析XML文件步骤

STEP 1:创建解析器工厂对象

STEP 2:解析器工厂对象创建解析器对象

STEP 3:解析器对象指定XML文件创建Document对象

STEP 4:以Document对象为起点操作DOM树

public class ParseXMLDemo{
    //全局变量:Document对象
    Document document = null;
    //解析XML文件获取相应Document对象
    public void getDocument(){
        //解析器工厂(DocumentBuilderFactory)
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        try{
       		//解析器(DocumentBuilder)        
        	DocumentBuilder builder = factory.newDocumentBuilder();
            //解析相应XML文件获得Document对象
            builder.parse("收藏信息.XML");
        }catch(ParseConfigurationException e){
            e.printStackTrace();
        }catch(SAXException e){
            e.printStackTrace();
        }catch(IOException e){
            e.printStackTrace();
        }
    }
}

JSON( JavaScript Object Notation)

轻量级的文本数据交换格式

具有自我的描述性

比XML传输速度快

JSON最初用来表示JavaScript中的对象, 但目前已独立于JavaScript, 成为最为常用的数据格式之一

语法规则

两大数据结构:对象和数组

大括号内为对象

中括号内为数组

对象中的数据由名称/值对构成

值的类型可为字符串、数字、布尔值、null、数组、对象

数据之间由逗号分隔

数组中的数据类型同名称/值对中值的类型

FastJson

由阿里开源的JSON解析框架

XML VS JSOC

XML

可扩展标记语言

编写格式良好的XML文档

使用DOM操作XML数据

显示/添加/保存

JSON

轻量级的文本数据交换格式

会使用FastJson生成、解析JSON

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值