XML(Extensible Markup Language)表示可扩展的标记语言

XML的标签没有被预定义,也就是说不是固定的,用户可以根据自身的需求去自定义标签

XML的作用主要是用来存储数据和传输数据

1.     存储数据是用于存储有层级关系的数据,例如省市区。在java领域XML的使用主要是作为框架的配置文件

(1)Spring Framework application.xml

(2)Mybatis mybatis.xml

(3)Log4j2 log4j2.xml

2.传输数据指的是服务提供方返回个服务调用的数据传输格式,目前主流的数据传输格式是JSON

XML目前版本是1.0

XML元素组成

1.文档声明

可以不写,但日常开发都写

必须在XML文件第一行第一列

2.元素(标签)

每个XML文件必须要有一个根标签

标签由开始标签和结束标签组成,开始标签和结束标签中间可以写标签也可以是文本字符串

标签是可以嵌套使用的,但是不能随便嵌套,必须明确层级关系

标签名必须遵守命名规则和命名规范

(1)标签不能以数字开头

(2)不能使用XML,Xml,xml

(3)不能使用空格和冒号

(4)命名区分大小写

3.属性

(1)属性是标签的组成部分,属性只能定义在开始标签中,不能定义在结束标签中

(2)属性的定义格式 属性名=属性值,属性值需要使用“”包含起来

(3)开始标签中可以定义多个属性,但是多个属性的属性名不能相同

(4)属性名和标签名一样,也要遵守命名规则和命名规范

4.注释

注释就是对XML标签的说明

idea中XML注释的快捷键Ctrl+/

5.转义字符

在XML中有些字符是无法识别,此时就需要使用XML的转义字符来表示

&用&来表示

<用&lt;

6.字符区

CDATA内部所有的内容都会当作文本解析,使用字符区解决在XML中有些字符无法识别的问题

IDEA中CDATA的快捷键是CD回车

XML约束的介绍

由于XML的标签是没有预定义,而且目前没有添加约束,在编写XML文件的时候可以添加任意的标签,这样不利于解析,在XML的技术里可以去编写一个XML约束文件来约束XML编写的规范,这杯成为XML约束

XML约束的类型有如下两种:

1.DTD约束(文件后缀名是.dtd) Java Web项目的web.xml使用的就是DTD约束

2.Schema约束(文件后缀名是.xsd)Spring Framework的application.xml使用的就是Schema约束XSD(XML Schema  Definition)

可以根据约束文件的后缀名来判断约束的类型

Schema约束比DTD约束强大

1.数据类型更加完善

2.对于元素出现的次数限制更加灵活

在日常开发中(开发业务系统),通常都不会去编写约束文件,但是我们需要根据约束文件编写符合规范的XML文件,因此对于约束文件普通的开发人员看懂即可

XML约束约束XML文件的内容

-约束XML标签的层级关系(根标签,子标签,子子标签的关系)

-约束标签(名称,类型)

-约束标签的属性(属性名,属性类型,属性约束)

XML约束-DTD约束

DTD约束的定义

数量词

+表示约束可以出现1-n个,n个表示多个

*表示元素可以出现0-n个,n表示多个

,表示元素必须按照指定的顺序出现

|表示选取其中一个

1.约束标签的层级关系

2.约束标签

3.约束标签的属性

DTD约束的使用

根据DTD约束文件位置不同,使用方式有如下三种

1.外部DTD-本地DTD,DTD文档在本地磁盘路径,但是和XML文件不是在同一个文件中,DTD文档和XML文件通常是在同一个目录下

2.外部DTD-公共DTD,DTD文件在网络上,一般都是由框架提供的,也是我们使用最多的

后续学习Java Web开发使用web.xml的时候会使用这个DTD约束文档

3.内部DTD,XML文件和DTD约束在一个XML文件中,DTD约束只会针对当前XML文件

XML约束-Schema约束

1.Schema约束的定义

2.Schema约束的使用

或者完整写法

常见XML解析方法有两种

1.DOM:要求解析器将整个XML文件全部加载到内存中,生成一个Document对象

优点:元素和元素之间的结构,关系,可以针对元素进行增删查改操作

缺点:如果XML文件过大,可能会导致内存溢出

2.SAX:是一种速度更快,更加高效的解析方式,她是逐行扫描,边扫描边解析,并且以事件驱动的方式来进行具体的解析,每解析一行,都会出发一个事件。

优点:不会出现内存溢出,可以处理大文件

确定:只能读,不能写

解析器就是根据不同的解析方式提供具体的实现,为了方便开发人员来解析XML,有一些方便操作的类库。

dom4j:比较简单的XML解析的类库

jsoup:功能强大的DOM方式解析的类库,尤其对HTML解析更加方便

获取到标签内属性后一般封装到对象中

dom4j结合Xpath解析XML

Xpath可以使用路径表达式来选取XML文档中的元素或者属性节点,节点是沿着路径来选取的

XML及使用dom4j解析XML相关推荐

  1. XML简介与Dom4j解析XML

    文章目录 一.XML简介 1.什么是 XML 2.XML 的主要作用 3.XML 与 HTML 4.XML 属性 5.XML语法规则 二.Dom4j解析XML 1.树结构与xml文件的解析技术 1.1 ...

  2. 【学习笔记】关于DOM4J:使用DOM4J解析XML文档

    一.概述 DOM4J是一个易用的.开源的库,用于XML.XPath和XSLT中.采用了Java集合框架并完全支持DOM.SAX.和JAXP. DOM4J最大的特色是使用大量的接口,主要接口都在org. ...

  3. Dom4j 解析Xml文档及XPath查询 学习笔记

    本文查阅方法:     1.查阅目录 -- 查阅本文目录,确定想要查阅的目录标题     2.快捷"查找" -- 在当前浏览器页面,按键 "Ctrl+F" 按键 ...

  4. java dom xml 换行,dom4j解析xml文件_用DOM解析XML文件,怎么才能让解析出来的文本不用换行_dom解析xml文件...

    网友求助:dom4j解析xml文件_用DOM解析XML文件,怎么才能让解析出来的文本不用换行_dom解析xml文件 问题importjava.text.SimpleDateFormat; import ...

  5. 使用dom4j解析XML文件

    为什么80%的码农都做不了架构师?>>>    dom4j是一个java 的XML API,用来读写XML文件. 使用dom4j解析XML文件,首先需要在官网下载dom4j-1.6. ...

  6. Dom4J 解析xml ,类查询

    /*** 从XML文件比对,传入provinceId 返回 provinceShortName * @param provinceid* @return*/public static String p ...

  7. Dom4j 解析Xml文档及 XPath查询 学习笔记

    2019独角兽企业重金招聘Python工程师标准>>> 本文查阅方法:     1.查阅目录 -- 查阅本文目录,确定想要查阅的目录标题     2.快捷"查找" ...

  8. 使用DOM4J解析XML及采用Schema校验的方法

    使用DOM4J解析XML及采用Schema校验的方法 Validation Currently dom4j does not come with a validation engine. You ar ...

  9. Dom4j解析Xml文件,Dom4j创建Xml文件

    Dom4j解析Xml文件,Dom4j创建Xml文件 >>>>>>>>>>>>>>>>>>&g ...

最新文章

  1. 12位黄金技术大佬发出警告:一大波必读好书向你袭来!
  2. python自动生成鸡汤文_20行python代码实现鸡汤智能生成器
  3. 一个基于poi的excel导出程序
  4. linux虚拟主机管理系统wdcp系列教程之三
  5. 基于内容的图像检索中常用的标准图像库 Benchmark databases for CBIR
  6. IDEA无法通过类加载器获取resources文件夹配置文件解决办法
  7. Spring Boot 最佳实践(三)模板引擎FreeMarker集成
  8. android bitmap 加边框,Android 给圆角的Bitmap加边框
  9. 钉钉人脸识别,戴个太阳帽就找不到人脸
  10. AT指令集及其通信测试方式
  11. 制作u盘winpe启动盘_如何制作U盘启动盘
  12. 简单图片木马的生成与利用
  13. 锐龙调用python库的问题_一个小白对当前锐龙4000笔记本的愚见
  14. 疫情当下,选择代理加盟互联网广告项目的优势
  15. 网络三维虚拟展馆开发优势
  16. cad 打开硬件加速卡_如何给自己的CAD配置加速,使其运行更快!
  17. 玩转容器安全二 - 容器安全概述
  18. 关于PS新建(PS如何新建)
  19. OpenCV——角点检测原理分析(Harris,Shi-Tomasi、亚像素级角点检测)
  20. 海外媒体推广,企业如何在YouTube做好海外网红KOL营销?

热门文章

  1. 乘法逆元求法的一些总结
  2. 《微店赚钱一册通 ——开店+营销+推广 实战全攻略》一一1.3 商家纷纷试水微信营销...
  3. C#仿QQ皮肤-皮肤使用须知与常见问题解决方案
  4. web网页设计实现——04.16
  5. 立体匹配研究背景及意义
  6. (Modern Family S01E03) Part 2  JayGloria  Jay玩弄飞机 Gloria说兴起对于男人的重要性
  7. 基于Anaconda3环境下的CNTK安装
  8. java 输入函数_java新手问题——输入函数
  9. python画图系列之个性化显示x轴区段文字
  10. python中实现swap函数