3 XML

  1. XML
    1. XML概述
      1. xml是什么?

Extensible Markup Language 可扩展标记语言。

W3C 2000 1.0

xml是一种数据存储格式, 本质上就是一段字符串。

      1. xml是如何来保存数据的?

xml中允许用户自定义标签, 标签分为开始标签和结束标签。开始标签和结束标签之间可以嵌套其他的标签。

正是利用标签来保存数据, 利用标签之间嵌套关系来保存数据之间的层级关系。

      1. xml的应用场景

(1)传输数据

由于xml本质上是一段字符串, 具有跨平台的特性, 因此可以在不同系统之间进行数据交换。

 

(2)用作配置文件

由于xml可以保存有结构的数据, 因此xml常被用来用作应用程序的配置文件。

      1. xml文件、xml校验(~了解)

编写一个xml文件

校验上述xml文件

    1. XML语法
      1. 文档声明

文档声明的作用:用来声明当前xml基本属性信息的, 解析器会根据文档声明来决定如何解析xml文件。

注意:

一个xml文件必须包含且只能包含一个文档声明。

文档声明必须放在xml文件的第一行,前面不能有任何内容。

如果一个xml文件没有包含文档声明, 则该xml是一个不符合规范的xml文件。

写法:

<?xml version="1.0"?>

version用来声明当前xml所遵循的xml规范, 目前就是1.0

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

encoding用来声明当前xml所使用的字符集编码, xml解析器在解析xml的时候,会根据encoding属性所指定的编码来解析xml文件。

 

注意: 文件在保存时所使用的编码要和encoding属性所指定编码相同, 才可以避免乱码问题。

<?xml verison="1.0" encoding="UTF-8"? standalone="yes">

standalone用来声明当前文档是否独立, 如果xml文档不依赖其他的文档而存在, 表明当前文档是一个独立的文档, 可以指定值为yes, 如果当前文档需要依赖其他的文档而存在, 需要指定值为no。

      1. 元素
  • 一个标签(标记)就是一个元素。
  • 标签分为开始标签和结束标签, 在开始标签和结束标签之间的文本称之为标签体。
  • 如果一个标签既不包含标签体, 也不包含其他的子标签, 可以把开始标签和结束标签合并成一个自闭标签。
  • 标签要合理的嵌套, 不能出现交叉嵌套。
  • 一个xml文件有且仅有一个根标签。
  • 元素的命名规范:
    1. 区分大小写。 如:<P>和<p>是两个不同的标签。
    2. 不能以数字或标点符号开头。
    3. 不能以xml(XML, Xml)开头。
    4. 不能包含空格 如:<a b>
    5. 不能包含冒号 如:<a:b>
  • 易犯错误:

标签没有结束标签或者是自闭标签没有自闭!!!

      1. 属性

一个元素上可以声明多个属性, 多个属性之间用空格隔开。

属性与属性值用等号连接, 属性的值用单引号或者双引号引起来。

属性的命名和元素遵循相同的命名规范。

      1. 注释 (了解)

格式: <!-- xml注释 -->

注释不能放在文档声明的前面

注释不能交叉嵌套

      1. 转义字符 (了解)

常用的转义字符:

< <

> >

& &

" "

' '

    1. xml约束 (了解)

约束: 在xml中, 可以提供约束文档来约束xml文档的写法

DTD/Schema W3C

 

    1. xml解析
      1. 两种解析思想 (!!!重要)

方式一:DOM解析

将整个XML文档加到内存中,用一个Document对象来表示整个文档。将XML文档中所有的内容(元素、属性、文本等)都解析成一个一个的对象,用对象来表示元素,用对象与对象之间的引用关系来表示元素之间的层级关系。通过在程序中操作对象来间接的操作(增删改查)XML文档中的内容。

 

优点:

(1)可以十分方便对节点进行增删改查的操作。

(2)在内存中保存了一颗文档结构树, 只需要解析一次就可以重复使用这些数据。

缺点:

(1)将整个文档都加载到内存中用对象表示,占用内存空间,如果xml文档体积非常庞大时,将会十分耗费内存。

(2)需要等整个xml文档解析完成后,才可以对节点进行操作,相对来说耗费时间,效率低。

 

方式二:SAX解析

优点:

(1)由于是逐行解析,因此不需要将整个XML文档加载进内存,占用内存小。理论上多大的XML文件都可以解析

(2)由于是逐行解析,遇到想要的内容就可以停下来处理,效率高

缺点:

(1)每次需要数据都需要重新解析。

(2)只能读数据,不能对XML文档进行增删改的操作。

 

4.2.DOM4J解析

略  

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

岁月玲珑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值