JavaWeb-XML

1.常见的配置文件

1.1 properties

数据库的连接就使用properties文件作为配置文件,properties文件中的配置信息是以键值对的形式存储的。

java 复制代码
beiluo.jdbc.url=jdbc:mysql://localhost:3306/beiluo
beiluo.jdbc.driver=com.mysql.cj.jdbc.Driver
beiluo.jdbc.username=root
beiluo.jdbc.password=root

1.2 XML

  • XML是Extensible Markup Language的缩写,即可扩展标记语言。XML与HTML一样都是标记语言,所以基本语法都是标签。
  • 可扩展意思是标签的名称可以是自定义的,但不代表可以随便写。
  • XML在Java中常用于配置文件。我们不需要从头到尾的写XML文件,而是在第三方应用程序、框架已提供好的配置文件的基础上修改。
  • 在XML基本语法规范的基础上,使用的第三方应用程序、框架会通过XML约束的方式强制规定配置文件中可以写什么和怎么写。
  • XML文件的文档声明必须放在文件的第一行。
  • XML是有约束的,约束限定了XML文件内能编写的内容。有了约束之后,就不能随意自定义标签。在编写XML文件时,会有标签提示。有两种约束:
    • dtd约束:简单、上手快,但约束不够细致。
    • schema约束:复杂、上手慢,但约束细致。.xsd结尾的就为schema约束。
xml 复制代码
<?xml version="1.0" encoding="UTF-8"?>

<jdbc>
    <username>root</username>
    <passwoerd>root</passwoerd>
    <driver>com.mysql.cj.jdbc.Driver</driver>
    <url>jdbc:mysql://localhost:3306/beiluo</url>
</jdbc>

1.3 YAML

SpringBoot就是用YAML作为配置文件。

1.4 json等

json文件通常用于做文件传输,也可以用来做前端或移动端的配置文件。

还有一些其他的配置文件。

2. DOM4J进行XML解析

2.1 DOM4J使用步骤

  • 导入jar包,dom4j.jar。
  • 创建解析器对象(SAXReader)。
  • 解析XML获得Document对象。
  • 对Document对象进行访问和操作。

2.2 API介绍

java 复制代码
@Test
    //要用Test注解,类名就不能为Test
    public void test() throws DocumentException {
        //创建SAXReader对象
        SAXReader saxReader = new SAXReader();
        //通过类加载器获得指向字节码根路径下的指定文件的输入流
        InputStream inputStream = TestDOM4J.class.getClassLoader().getResourceAsStream("jdbc.xml");
        //通过输入流获得document对象
        Document document = saxReader.read(inputStream);
        //由document对象获得根标签
        Element rootElement = document.getRootElement();
        //输出根标签的标签名
        System.out.println(rootElement.getName());
        //得到所有子节点
        List<Element> elements = rootElement.elements();
        //遍历子元素
        for(Element ele : elements){
            System.out.println("\t" + ele.getName());
            Attribute idAttribute = ele.attribute("id");
            System.out.println("\t\t" + idAttribute.getName() + ":" + idAttribute.getValue());
            List<Element> eles = ele.elements();
            for (Element childElement : eles) {
                System.out.println("\t\t\t" + childElement.getName() + ":" + childElement.getText());
            }
        }
    }
相关推荐
欧特克_Glodon3 天前
OpenCV计算机视觉开发入门与实践<十二>:XML 和 YAML 文件读写
xml·c++·opencv·计算机视觉
程序员-珍3 天前
安卓开发:同名 styles.xml 在不同分支/文件夹的合并规则
android·xml·前端
LitchiCheng6 天前
还在改xml调相机?MuJoCo交互式可视化调整相机安装位置
xml·数码相机
richard_yuu6 天前
JSON vs XML vs 二进制:3种序列化终极选型
xml·c++·qt·学习·json
秋田君8 天前
QT_XML文件操作
xml·数据库·qt
数据知道9 天前
XXE 漏洞深度实战:XML 外部实体攻击与 OOB 带外
xml·网络·安全·网络安全
云水一下9 天前
零基础玩转bWAPP靶场(四十七):XSS - Reflected (AJAX/XML)
xml·web安全·ajax·xss·bwapp
爱敲键盘的猴子11 天前
深入理解 Spring IoC -- 基于 XML 的 Bean 配置详解
xml·java·spring
前网易架构师-高司机12 天前
带标注的羽毛球运动员,裁判,羽毛球识别数据集,识别率84.4%,2879张图,支持yolo,coco json,voc xml,文末有模型训练代码
xml·yolo·json·数据集·羽毛球·裁判
微微1笑抽了筋15 天前
xml中设置透明度
xml