【Java】Java核心 72:XML (上)

news/2024/10/18 0:29:49/

文章目录

      • 1 XML概述
        • 什么是XML
        • XML作用
      • 2 编写第1个XML文件
        • ==需求==
        • 效果
        • 步骤
      • 3 XML的组成:声明和元素
        • XML组成
        • 文档声明
        • 元素(标签、标记)
      • 4 XML的组成:属性、注释和转义字符
        • 属性的语法
        • 注释
        • 转义字符[实体字符]
        • 小结


在这里插入图片描述

1 XML概述

什么是XML

  1. 英文:Xtensible Markup Language 可扩展的标记语言,由各种标记(标签,元素)组成。
  2. 可扩展:所有的标签都是自定义的,可以随意扩展的。如:<abc/>,<姓名>
  3. 标记语言:整个文档由各种标签组成。清晰,数据结构化!
  4. XML是通用格式标准,全球所有的技术人员都知道这个东西,都会按照XML的规范存储数据,交互数据!!

XML作用

作用:总体上来说,就是为了存储维护数据的。

  1. 数据交换:不同的计算机语言之间,不同的操作系统之间,不同的数据库之间,进行数据交换。
    在这里插入图片描述

  1. 配置文件:在后期我们主要用于各种框架的配置文件基本天天见。

比如我们很快会学到连接池:c3p0-config.xml

在这里插入图片描述


2 编写第1个XML文件

需求

编写xml文档,用于描述人员信息,person代表一个人员,id是人员的属性代表人员编号。人员信息包括age年龄、name姓名、sex性别信息。

使用Java类去描述:

class Person{String id;int age;String name;String sex;
}Person p = new Person("1","张三",18,"男");

效果

在这里插入图片描述

步骤

  1. 选择当前项目鼠标右键新建

    新建一个File命名时,以 .xml结尾。这个文件就是xml文件

在这里插入图片描述

  1. 编写person.xml文件

    <?xml version="1.0" encoding="UTF-8" ?>
    <peopel><person><id>1</id><name>张三</name><age>18</age><sex></sex></person><person><id>2</id><name>李四</name><age>20</age><sex></sex></person></peopel>
    
  2. 通过浏览器解析XML的内容

  • 注:XML以后通过Java来进行解析,很少直接在浏览器上显示。

3 XML的组成:声明和元素

XML组成

  1. 声明
  2. 元素(标签)
  3. 属性
  4. 注释
  5. 转义字符【实体字符】
  6. CDATA 字符区

文档声明

<?xml version="1.0" encoding="utf-8" ?>    固定格式
  1. IDEA会自动提示。

  2. 文档声明必须为<?xml开头,以?>结束

  3. 文档声明必须从文档的1行1列位置开始,必须在xml文档中的首行首列

在这里插入图片描述

  1. 文档声明中常见的两个属性:

    • version:指定XML文档版本。必须属性,这里一般选择1.0;
    • encoding:指定当前文档的编码,可选属性,默认值是utf-8;

元素(标签、标记)

格式1:  <person> 标签体 </person>   有标签体的标签
格式2:  <person/>  没有标签体的标签 (空标签)
  1. 元素是XML文档中最重要的组成部分;

  2. 普通元素的结构由开始标签、元素体、结束标签组成。【格式1】

  3. 元素体:元素体可以是元素,也可以是文本,例如:

    <person> 标签中可以包含另一个标签  <name>张三</name>  
    </person>
    
  4. 空元素:空元素只有标签,而没有结束标签,但元素必须自己闭合,例如:

    <sex/>
    
  5. 元素命名

    • 区分大小写
    • 不能使用空格,不能使用冒号
    • 不建议以XML、xml、Xml开头
    • 标签名不能数字开头,可以有数字
    • 可以使用下划线

    可以保持与Java命名标识符一样的规则

  6. 格式化良好的XML文档,有且仅有一个根元素。

错误演示:

元素没有结束

在这里插入图片描述

元素大写小写不一致

在这里插入图片描述

xml中多个根

在这里插入图片描述


4 XML的组成:属性、注释和转义字符

属性的语法

<person id="110">
  1. 属性是元素的一部分,它必须出现在元素的开始标签中

  2. 属性的定义格式:属性名=“属性值”,其中属性值必须使用单引或双引号括起来

  3. 一个元素可以有0~N个属性,但一个元素中不能出现同名属性
    在这里插入图片描述

  4. 属性名不能使用空格 , 建议不要使用冒号等特殊字符,且必须以字母开头

    建议以Java的标识符定义规则做参考

<person id="123"><name>张三</name>
</person>

注释

<!-- 注释内容 --><!-- 
注释内容 1
注释内容 2
-->

XML的注释与HTML相同,既以<!--开始,-->结束。不能嵌套。

Java中注释:

// 单行
/* */ 多行注释
/** */ 文档注释

XML注释:

<!-- 注释内容 -->
<!--<person>注释</person>-->  <!-- 快捷键:Ctrl+/ :可以将整行进行注释-->
<person>三生三世</person> <!-- 快捷键:Ctrl+Shift+/:局部注释-->

转义字符[实体字符]

​ XML中的实体字符与HTML一样。因为很多符号已经被文档结构所使用,所以在元素体或属性值中想使用这些符号就必须使用实体字符

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gklSSWwR-1687767096552)(imgs/1552353386585-1602337253871.png)]

字符预定义的转义字符说明
<&lt;小于(less than)
> &gt;大于(greater than)
" &quot;双引号(quotation)
&apos;单引号(apostrophe)
& &amp;和号(ampersand )

注意:严格地讲,在 XML 中仅有字符 “<“和”&” 是非法的。省略号、引号和大于号是合法的,但是把它们替换为实体引用是个好的习惯。

转义字符应用示例:

​ 假如您在 XML 文档中放置了一个类似 “<” 字符,那么这个文档会产生一个错误,这是因为解析器会把它解释为新元素的开始。因此你不能这样写:

<message>if salary < 1000 then </message>

为了避免此类错误,需要把字符 “<” 替换为实体引用,就像这样:

<message>if salary &lt; 1000 then</message>

小结

  1. 属性必须出现在标签哪个位置?

    • 和开始标签绑定在一起,书写在开始标签元素的后面

    • <person id="属性值">
      </person>
      
  2. 同一个标签是否可以有同名的属性?

    • 不可能。
    • 允许有多个属性,属性之间使用空格分隔,但不能出现相同名称的属性
  3. 为什么要有转义字符(实体字符)?

    • 在xml文件中,一些特定的符号已经被xml使用了。例:> & 等
    • 希望在xml文档中,使用特定的符号,需要用:转义字符
      • < => &lt;
      • & => &amp;
  4. 注释的快捷?

    • ctrl + /


在这里插入图片描述


http://www.ppmy.cn/news/598209.html

相关文章

vue项目中修改iframe嵌入的css样式

需求&#xff1a; 使用iframe嵌入一个外部链接&#xff0c;并修改该页面中的css样式。 参考文章&#xff1a;在Vue中优雅的更改iframe嵌入页面的样式 实现逻辑&#xff1a; 若要实现能够修改iframe中嵌入页面的样式&#xff0c;首先要保证嵌入的链接和当前页面是同域的&…

【Android复习笔记】Handler机制(三)

怎么检查线程有耗时任务 耗时任务: 正常的,轻微阻塞 不正常的,严重阻塞 检测线程是否发生耗时任务的方案: 系统服务通过 Watchdog 实现 应用进程可以通过 BlockCanery 实现 WatchDog 的原理 WatchDog是干什么的? 检查是否发生了死锁 检查线程是否被任务blocked Watchdog…

css增加高斯模糊的效果

实现效果 关键代码 backdrop-filter 当你创造一个元素加上这个属性后&#xff0c;会使得这个元素后面的区域添加效果&#xff08;如模糊或颜色偏移&#xff09; background: rgba(0,0,0,.5);backdrop-filter: blur(10px);

地球环境现在怎么样

地球环境现在面临着很多挑战&#xff0c;包括气候变化、生态破坏、污染、资源短缺等。其中气候变化是一个最为突出的问题&#xff0c;已经导致全球温度上升、海平面上升、极端天气增多等现象。此外&#xff0c;人类活动还导致了野生动植物数量和多样性的大幅减少&#xff0c;森…

登录earth online网站下载数据

看网上没有相关&#xff0c;故将流程记录如下 Home - Earth Online 该网址进入&#xff0c;注册流程如下&#xff0c; 注册后会让你做修改并回答问题&#xff0c;正常处理就能获取权限。同时会给你两个网址&#xff0c;登录账号就能搜索地图数据。 登录地图网址&#xff0c;详…

能上网,显示小地球的解决办法

简单的说&#xff0c;能否上互联网的判定网址正好被URL过滤了&#xff0c;所以系统判定你上不了互联网&#xff0c;但是实际上你如果上百度等网址&#xff0c;是可以的&#xff0c;因为没有URL过滤。 So&#xff0c;我们把这个判定的网址改成国内&#xff0c;那就 easy&sa…

最新的IP归属地数据库-最新IP地址数据库

最新IP地址数据库&#xff08;加微&#xff1a;tcg0531&#xff09; 2021年 11月 最新发行版 864224条数据 基于&#xff1a;国内基于省市区以及运营商 国外基于国家 大部分城市 运营商 版本&#xff1a; 全球旗舰版 国内精华版 国外拓展版英文版 掩码版 字段&#xff1a;大…

日IP千万,如何解决环境问题

日IP千万大部分人都首先想到用linux&#xff0c;这个是必须的&#xff0c;windows最高并发才3000&#xff0c;超过3000就相当于不管你配置如何高都无法处理完高并发量&#xff0c;严重导致死机&#xff0c;最近遇见一个比较棘手的问题 日IP千万大部分人都首先想到用linux&#…