XML基础向学习

XML 和 JSON

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>迈克尔斯科菲尔der</name>

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

    1. 正例:

    ​ <names>

    ​ <name>魔术师罗宾逊</name>

    ​ <name>迈克尔斯科菲尔der</name>

    ​ </names>

    1. 反例:

    ​ <name>魔术师罗宾逊</name>

    ​ <name>迈克尔斯科菲尔der</name>

  4. 标记可以被嵌套,但是不允许有交叉

    1. 正例:

    ​ <person>

    ​ <name>老四</name>

    ​ <age>18</age>

    ​ </person>

    1. 反例:

      ​ <person>

      ​ <name>赵高<age></name>

      ​ 34</age>

      ​ </person>

  5. 标记的层级称呼 (子标记、父标记、兄弟标记、后代标记、祖先标记)

​ 例如:

​ <persons>

​ <person>

​ <name>赵高</name>

​ <length>180</length>

​ </person>

​ <person>

​ <name>李斯</name>

​ <length>180</length>

​ </person>

​ </persons>

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

​ name 是persons 的后代标记,

​ name 是length的兄弟标记

​ person 是 name 的父标记

​ persons 是 name 的祖先标记

  1. 标记名称 允许重复

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

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

    ​ 格式:

    ​ 再开始标记中,描述属性。

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

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

    ​ 属性值,必须被引号引住。

    ​ 案例:

    ​ <persons>

    ​ <person id=“1001” groupid=“1”>

    ​ <name>赵高</name>

    ​ <age>18</age>

    ​ </person>

    ​ </persons>

  3. 注释

    ​ 注释不能写在 文档声明 (即 第1条) 前

    ​ 注释不能嵌套注释

    ​ 格式:

    ​ 注释开始:<!–

    ​ 注释结束:–>


语法进阶 CDATA

CDATA

​ CDATA 是不应该由XML解析器解析的文本数据。

​ 像"<" 和"&" 字符在XML 元素中都是非法的。

​ “<” 会产生错误,因为解析器会把该字符解析为新元素的开始

​ "&"会产生错误,因为解析器会吧该字符解析为字符实体的开始

​ 某些文本,比如 JavaScript 代码,包含大量"<" 或 "&"字符。为了避免错误,可以将脚本代码定义为CDATA。

​ CDATA 部分中的所有内容都会被解析器忽略。

​ CDATA 部分由

​ “<![CDATA[" 开始,由 "]]>” 结束。

​ <name><![CDATA [哈哈哈 <a></a> 哈哈]]></name>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值