xml 和 xml 解析

XML

1. XML 介绍

eXtensible Markup Language 可扩展标记语言,通常用于各种组件或者框架的配置文件,文件内容由各种标签组成

2. XML 与 HTML 区别

区别 HTML XML
功能 制作网页 用于配置文件
大小写 不区分大小写 区分大小写
语法严谨性 不严谨,若一个标签有开始,没有结束,浏览器也能解析 很严谨,标签的开始和结束必须严格配对
可扩展性 没有可扩展性,所有的标签的功能都已固定 可以扩展,因为所有的标签都是自定义的

3. XML 组成

XML 文件由 7 个组成元素构成:

  • 文档声明

    • 语法:以 <?xml 开头,以 ?> 结尾
    • 位置:必须在 XML 文件的第一行
    • 例子:<?xml version="1.0" encoding="UTF-8"?>
    • 三个属性:
    文档声明的三个属性 说明
    version 用于指定 XML 使用哪个版本,固定的写法 1.0
    enconding 指定当前 XML 编码
    standalone yes/no 默认是 yes,这个 XML 文件是否是一个单独的文档
  • 标签元素 Element

语法:有主体标签 < 标签 > 和无主体标签:< 标签/>
主体部分:分为有主体和无主体标签,主体部分可以包含文本或者元素
空元素:无主体标签也需要关闭
大小写:标签名区分大小写
命名不能有空格,不能有冒号
根元素:每个 XML 文档有且仅有一个根元素,
  • 属性 Attribute
属性位置:必须放在开始标签中
属性的值必须使用双引号或单引号
在同一个标签不能出现多个同名的属性
命名中不能出现空格和冒号
  • 注释 Comment
    • 与 HTML 注释相同,不可嵌套
  • 转义字符(实体字符)
说明 字符 转义字符
小于 < lt;
大于 > gt;
双引号 " quot;
单引号 ' apos;
与符号 & amp;
  • 字符数据区(用于显示大量特殊字符)
    • 格式:<![CDATA[ 文本数据 ]]>
    • 可以让某些字符不被 XML 解析,始终作为纯文本来操作
  • 处理指令(不常用)
    • 格式:<?xml-stylesheet 属性=""... ?>
    • 作用:处理指令,简称 PI(Processing instruction)用来指挥解析引擎如何解析 XML 文档

4. XML 作用

主要用于数据的处理和表达,因为 HTML 等其他标记语言无法准确表达其本质内容,而主要是表现样式,导致带来诸多不便,所以 XML 就诞生了

在企业开发中的主要应用场景:

  • 数据交换,用于不同的系统之间,或不同的数据库之间进行数据交换
  • 用于各种框架的配置

5. XML 文件约束

因为 XML 是可扩展标记语言,可以写任意标记,所以需要对 XML 进行一些约束,保证 XML 文件数据的正确性和有效性

DTD:Document Type Definition 文档类型定义

作用:用于约束 XML 文件,DTD 本身是个文本文件

导入 DTD 文件的两种格式 说明
<!DOCTYPE 根元素 SYSTEM "DTD 文件"> 系统的 DTD 文件,使用范围比较小,一般用于公司,不对外开放的 DTD 文件
<!DOCTYPE 根元素 PUBLIC "DTD 文件"> 公共的 DTD 文件,用于互联网上,使用广泛的用途
  • XML Schema Definition 比 DTD 强大,是 DTD 的替代者
  • 本身也是 XML 文档,扩展名为 xsd
  • 功能更强大,数据约束类型更完善

XML 解析

Jsoup

将整个文档加载到内存,生成一个 DOM 树,并获得一个 Document 对象,通过 Document 对象操作 DOM 树

JsoupXPath

JsoupXPath 是一款纯 Java 开发的使用 xpath 解析 HTML 的解析器,JsoupXPath 不是 Jsoup 的一部分,是在 Jsoup 基础上进行的扩展。XPath 使用路径表达式来选取 HTML 或 XML 文档中的元素节点或属性节点

  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3012 引用 • 8158 回帖 • 547 关注
  • XML
    28 引用 • 59 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...