当前位置: 首页 > news >正文

JavaWeb XML

1、定义

EXtension markup language

XML:可扩展自定义标记语言

2、XML的存在意义和用法

XML存在约束,可以自定义但也存在书写规则,一般不需要逐行书写。

我们使用XML,只需要基于第三方应用程序和已提供框架的配置文件进行修改。

3、常见配置文件的类型

(1)properties

实例:

<username>root</username>

<password>root</password>

<driver>com.mysql.cj.jdbc.Driver</driver>

<url>jdbc:mysql//localhost:3300/atguigu</url>

书写规范:

1.以键值对的形式书写

2.键和值之间有等号

3.必须顶格书写,前面不能有空格符号

(2)XML

xml的语法:

①根标签只有一个

②第一行永远是<?xml version="1.0" encoding="UTF-8"?>不允许放任何东西

③xml是有约束的,约束用于限定xml内部能编写的内容

   xml两种约束 :

 dtd   简单  约束没有schema细致

 schema 复杂  约束细致

补充:

标签名、属性名建议使用小写字母

    -   属性必须有值

    -   属性值必须加引号,单双都行

   XML的文档声明,这部分基本上是固定格式,要注意的是:

文档声明一定要从第一行第一列开始写。

DOM4J进行XML的解析:

Jdbc.xml文件信息

<?xml version="1.0" encoding="utf-8" ?>  <!-第一行固定书写-->

<jdbc>

 <dev>

     <username>root</username>

     <password>root</password>

     <driver>com.mysql.cj.jdbc.Driver</driver>

     <url>jdbc:mysql//localhost:3300/atguigu</url>

 </dev>

   

</jdbc>

java代码展示:

public class testDom4j {

    @Test

    public void test() throws Exception{

        //读取jdbc.xml的配置文件  获得document文件

        SAXReader saxReader=new SAXReader();

        //通过类加载器获得指向字节码根路径下的指定文件的输入流

        InputStream resourceAsStream = testDom4j.class.getClassLoader().getResourceAsStream("jdbc.xml");

        //通过输入流获取配置文件,解析成一个dom对象

        Document document=saxReader.read(resourceAsStream);

        //从document对象上获得配置文件中的信息



        Element rootElement = document.getRootElement();

        System.out.println(rootElement.getName());


        List<Element> elements=rootElement.elements();

        for (Element element:elements){

            System.out.println("\t"+element.getName());

            Attribute idAttribute = element.attribute("id");

            System.out.println("\t"+idAttribute.getName()+"="+idAttribute.getValue());

        }

    }

}

Node  节点:

Element  元素结点

Attribute  属性结点

Text  文本节点

总结:

XML是配置文件,用于存储一些配置信息,作用类似于properties

相关文章:

  • 分布式存储学习——1.HBase的安装和配置
  • 三、0-1搭建springboot+vue3前后端分离-springboot整合mybatis plus 之本地安装mysql
  • 云原生时代的技术桥梁
  • DailyNotes 增加提醒功能
  • Vue 与 Nuxt 的区别
  • Ansys Zemax | 使用衍射光学器件模拟增强现实 (AR) 系统的出瞳扩展器 (EPE):第 4 部分
  • 如何用AI完成多源异构数据集成
  • Deepseek v1/v3 满血版登陆蓝耘,500 万 tokens 助力解锁 AI 无限可能
  • BeanDefinitionRegistryPostProcessor和BeanFactoryPostProcessor的区别
  • LeetCode 1328.破坏回文串:贪心
  • 自然语言模型(NLP)介绍
  • 利用Dify和Qwen2构建一个测试用例自动生成器Agent
  • 战略合作升级 | 大势智慧携手广西地测院,共绘智慧测绘新蓝图
  • Linux权限维持之修改文件/终端属性(一)
  • Redis的CPU高达90%时如何处理
  • todo: 使用融云imserve做登录(android)
  • 前端基础之全局事件总线
  • 第一节:基于Winform框架的串口助手小项目---基础控件使用《C#编程》
  • unity调用本地部署deepseek全流程
  • 【AI深度学习网络】卷积神经网络(CNN)入门指南:从生物启发的原理到现代架构演进