day08-XML

XML官方文档:https://www.w3school.com.cn/xml/index.asp
1.为什么需要xml?

  1. 需求1:两个程序间进行数据通信?
  2. 需求2:给一台服务器,做一个配置文件,当服务器程序启动时,去读取它应当监听的端口号、还有连接数据库的用户名和密码
  3. spring中的IOC配置文件beans.xml,mybatis的xxxMapper.xml文件,tomcat的server.xml , web.xml文件
  4. xml能存储复杂的数据关系
? xml技术用于解决什么问题?
  • 解决程序间数据传输的问题:
    比如qq之间的数据传送,用xml格式来传输数据,具有良好的可读性,可维护性
    以前两个程序间的通信用xml作为数据通信的格式,现在一般用json
  • xml可以做配置文件
    xml做配置文件可以说是非常的普遍,比如我们的tomcat服务器的server.xml web.xml
  • xml可以充当小型的数据库
    我们程序中可能用到的数据,如果放在数据库中读取不合适(因为你要增加维护数据库工作),可以考虑直接用xml文件来做小型数据库 , 而且直接读取文件显然要比读取数据库快
    现在也不太使用xml作数据存储了
2.xml语法
  • 快速入门
需求:使用idea创建Students.xml存储多个学生信息
<?xml version="1.0" encoding="UTF-8" ?><!--1.xml:表示该文件的类型为xml2.version 表示版本3.encoding="UTF-8" 文件编码为UTF-84.students:root元素/根元素,名字自己定义5.<student> </student>表示一个students的子元素,可以有多个6.id就是属性,name,age,gender是student元素的子元素--><students><student id="100"><name>jack</name><age>10</age><gender>男</gender></student><student id="200"><name>Mary</name><age>18</age><gender>女</gender></student></students>
  • 一个xml文档分为如下几部分内容
    • 文档声明
    • 元素
    • 属性
    • 注释
    • CDATA区、特殊字符
2.1文档声明<?xml version="1.0" encoding="UTF-8" ?>
  1. xml声明放在xml文档的第一行
  2. xml声明由以下几个部分组成:
    • version:文档符合xml1.0规范,我们学习1.0
    • encoding:文档字符编码,比如:utf-8
2.2元素
  1. 元素语法要求:
  • 每个xml文档必须有且只有一个根元素
  • 根元素是一个完全包括文档中其他所有元素的元素
  • 根元素的起始标记要放在所有其他元素的起始标记之前
  • 根元素的结束标记要放在所有其他元素的结束标记之后
  1. xml元素指xml文件中出现的标签,一个标签分为开始标签和结束标签,一个标签有如下几种书写形式
  • 包含标签体:<a>www.baidu.com</a>
  • 不含标签体:<a></a>,简写为<a/>
  • 一个标签中也可以嵌套若干子标签 。但所有的标签必须合理地嵌套,绝对不允许交叉嵌套
  1. 在很多时候,元素,节点,标签是相同的意思
  2. xml元素命名规则:
    • 区分大小写,例如:<P><p>是两个不同的标记
    • 不能以数字开头
    • 不能包含空格
    • 名称中间不能包含冒号:
    • 如果标签单词需要间隔,建议使用下划线
2.3属性属性介绍:
  1. 属性值用双引号""或单引号''分隔(如果属性值中有单引号'',就用双引号""分隔,如过属性值中有双引号"",就用单引号''分隔)
  2. 一个元素可以用多个属性 , 它的基本格式为:<元素名 属性名="属性值">
  3. 特定的属性名称在同一个元素标记中只能出现一次
    即属性名称在同一个元素中不能重复
  4. 属性值不能包括&字符
2.4注释
  1. <!--这是一个注释-->
  2. 注释内容中不要出现 --
  3. 不要把注释放在标记中间 。错误写法:<Name <!--the name-->>TOM</Name>
  4. 注释不能嵌套
  5. 可以在除标记以外的任何地方放注释
2.5CDATA节有些内容不想让解析引擎执行 , 而是当做原始内容(普通文本)处理,可以使用CDATA括起来,CDATA节中的所有字符都会被当做简单文本,而不是xml标记
  1. 语法:
    <![CDATA[这里可以把你输入的字符原样显示,不会解析xml]]>

    推荐阅读