【系统学习】【JavaWeb基础】2-XML格式文件

本文介绍了XML的基本概念,如可扩展性、用途以及其与HTML的关系。重点讲解了文档声明、根标签、子标签、属性和标签嵌套。此外,还探讨了XML约束,尤其是Schema约束在Java中解析XML文件时的应用,如DOM4J库的使用示例。
摘要由CSDN通过智能技术生成

什么是XML?

XML是Extensible Markup Language的缩写,翻译过来就是可扩展标记语言。XML和HTML一样都是标记语言,也就是说它们的基本语法都是标签

XML文件的基本特点:

  • 可扩展:XML允许在一定范围内自定义格式

  • 用途:

    • 用做配置文件,保存数据

    • 在XML基本语法规范的基础上,第三方应用程序或者第三方框架会加入自定义XML约束,规定配置文件中可以写的内容和写的方式

XML文件内容展示:无约束的xml文件格式

<?xml version="1.0" encoding="UTF-8"?>
<students>
    <student>
        <name>张三</name>
        <age>18</age>
    </student>
    <student>
        <name>李四</name>
        <age>20</age>
    </student>
</students>

XML的学习思路:

  • 不要从零开始,知道怎么根据已有约束、已有配置文件进行修改即可

常见配置文件类型

配置文件类型用途
.propertiesdruid连接池就是使用properties文件作为配置文件
.XMLTomcat就是使用XML文件作为配置文件
.YAMLSpringBoot就是使用YAML作为配置文件,也叫做.yml
.json通常用来做文件传输,也可以用来做前端或者移动端的配置文件

XML文件基本语法

XML基本语法+HTML约束=HTML语法,在逻辑上HTML确实是XML的子集

文档声明

固定格式,一定要从第一行第一列开始写文档声明

 <?xml version="1.0" encoding="UTF-8"?>

根标签

有且只能有一个,标签名建议小写

<root>
  <child>
    <subchild>.....</subchild>
  </child>
</root>

子标签

上述根标签里面的标签就是子标签,子标签可以有多个,子标签也可以有自己的子标签

属性

标签可以包含属性,提供标签的附加信息

<person age="30" gender="male">John Doe</person>

标签一般包含:开标签、闭标签、属性、内容

标签嵌套

标签可以嵌套标签,但是要正确嵌套

<!-- 错误嵌套 -->
<b><i>This text is bold and italic</b></i>

<!-- 正确嵌套 -->
<b><i>This text is bold and italic</i></b>

嵌套的规则类似:算数运算中,不同括号的匹配规则。要保证闭合顺序

XML约束

将来主要就是根据XML约束中的规定来编写XML配置文件,而且会在我们编写XML的时候根据约束来提示我们编写

常用约束

约束类别区分
DTD约束文档声明中,以dtd结尾
Schema约束文档声明中,以xsd结尾(约束更强)

Schema约束概述

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    
    在这里编写正文内容
  • 代码所示为一个schema约束,根据约束,在下边编写相关内容
  • Schema约束要求我们一个XML文档中,所有标签,所有属性都必须在约束中有明确的定义,不能自己随意定义标签、属性

Java | 解析XML文件 | DOM4J包

导入jar包

<!-- https://mvnrepository.com/artifact/dom4j/dom4j -->
<dependency>
    <groupId>dom4j</groupId>
    <artifactId>dom4j</artifactId>
    <version>1.6.1</version>
</dependency>

使用

// 创建解析器对象(SAXReader)
SAXReader saxReader = new SAXReader();

// 解析XML文件,获取Document对象: 需要传入待解析的XML文件的字节输入流
Document document = saxReader.read(inputStream);

// 获取根标签
Element rootElement = documen.getRootElement();

//获取所有子标签
List<Element> sonElementList = rootElement.elements();

//获取指定标签名的子标签
List<Element> sonElementList = rootElement.elements("标签名");

// 获取标签内的内容
String text = element.getText();

// 获取标签内的属性值
String value = element.attributeValue("属性名");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值