XML

XML

XML概述

XML是可扩展标记语言(eXtensible Markup Language)的缩写,它是是一种数据表示格式,可以描述非常复杂的数据结构,常用于传输和存储数据。

XML的几个特点和使用场景

  • 一是纯文本,默认使用UTF-8编码;二是可嵌套;
  • 如果把XML内容存为文件,那么它就是一个XML文件。
  • XML的使用场景:XML内容经常被当成消息进行网络传输,或者作为配置文件用于存储系统的信息。

XML的创建、语法规则

就是创建一个XML类型的文件,要求文件的后缀必须使用xml,如hello_world.xml
IDEA创建XML文件的操作步骤

XML的语法规则

  • XML文件的后缀名为:xml
  • 文档声明必须是第一行

XML的标签(元素)规则

  • 标签由一对尖括号和合法标识符组成: ,必须存在一个根标签,有且只能有一个。
  • 标签必须成对出现,有开始,有结束:
  • 特殊的标签可以不成对,但是必须有结束标记,如:
  • 标签中可以定义属性,属性和标签名空格隔开,属性值必须用引号引起来
  • 标签需要正确的嵌套

XML的其他组成

  • XML文件中可以定义注释信息:<!– 注释内容 -->
  • XML文件中可以存在以下特殊字符
  • XML文件中可以存在CDATA区: <![CDATA[ …内容…  ]]>
    

XML文档约束方式一-DTD约束[了解]

什么是文档约束?
文档约束:是用来限定xml文件中的标签以及属性应该怎么写。
以此强制约束程序员必须按照文档约束的规定来编写xml文件。

文档约束的分类

  • DTD
  • schema

需求: 利用DTD文档约束,约束一个XML文件的编写。
分析:

  • 编写DTD约束文档,后缀必须是.dtd
  • 在需要编写的XML文件中导入该DTD约束文档
  • 按照约束的规定编写XML文件的内容。

XML的文档约束-DTD的作用和问题?

  • 可以约束XML文件的编写。
  • 不能约束具体的数据类型。

XML文档约束方式二-schema约束[了解]

文档约束-schema

  • schema可以约束具体的数据类型,约束能力上更强大。
  • schema本身也是一个xml文件,本身也受到其他约束文件的要求,所以编写的更加严谨

需求:利用schema文档约束,约束一个XML文件的编写。
分析:

  • ①:编写schema约束文档,后缀必须是.xsd,具体的形式到代码中观看。
  • ②:在需要编写的XML文件中导入该schema约束文档
  • ③:按照约束内容编写XML文件的标签。

XML的文档约束-schema的优点?

  • 可以约束XML文件的标签内容格式,以及具体的数据类型。
  • 本身也是xml文件,格式更严谨。

XML解析技术

XML解析技术概述

两种解析方式

  • SAX解析
  • DOM解析

Dom常见的解析工具

DOM解析解析文档对象模型

Dom4J解析XML文件

需求:使用Dom4J把一个XML文件的数据进行解析

分析:
1.下载Dom4j框架,官网下载。
2.在项目中创建一个文件夹:lib
4.在jar文件上点右键,选择 Add as Library -> 点击OK
5.在类中导包使用

Dom4j解析XML-得到Document对象

  • SAXReader类
  • Document类

Dom4J解析XML文件中的各种节点

  • Dom4j解析XML的元素、属性、文本

XML检索技术:Xpath

XPath介绍

  • XPath在解析XML文档方面提供了一独树一帜的路径思想,更加优雅,高效
  • XPath使用路径表达式来定位XML文档中的元素节点或属性节点。

使用Xpath检索出XML文件
需求:使用Dom4J把一个XML文件的数据进行解析
分析:
1.导入jar包(dom4j和jaxen-1.1.2.jar),Xpath技术依赖Dom4j技术
2.通过dom4j的SAXReader获取Document对象
3.利用XPath提供的API,结合XPath的语法完成选取XML文档元素节点进行解析操作。
4.Document中与Xpath相关的API如下:

Xpath的四大检索方案

  • 绝对路径: 采用绝对路径获取从根节点开始逐层的查找
  • 相对路径: 先得到根节点contactList,再采用相对路径获取下一级contact 节点的name子节点并打印信息
  • 全文检索: 直接全文搜索所有的name元素并打印
  • 属性查找: 在全文中搜索属性,或者带属性的元素
posted @ 2022-11-10 09:59  晚点心动。  阅读(228)  评论(0)    收藏  举报