【JavaWeb】XML的理解与Dom4j解析技术的使用(下)

简介: 1 xml简介2 xml入门2.1 xml示例文件2.2 xml语法介绍2.2.1 xml注释2.2.2 元素(标签)2.2.3 xml的属性2.2.4 xml语法规范2.2.5 文本区域(CDARA)2.3 xml解析技术3 Dom4j 解析技术3.1 Dom4j 类库的下载与简介3.2 dom4j编程一般步骤3.3 案例:使用dom4j读取xml文件得到Document对象

2️⃣ 创建一个包,对照xml文件的内容完成对应Student类的编写。

package com.hxh.domxml;
/**
 * @author 兴趣使然黄小黄
 * @version 1.0
 * 对照students.xml文件完成Student类
 */
public class Student {
    private String sno;
    private String name;
    private int age;
    public Student() {
    }
    public Student(String sno, String name, int age) {
        this.sno = sno;
        this.name = name;
        this.age = age;
    }
    @Override
    public String toString() {
        return "Student{" +
                "sno='" + sno + '\'' +
                ", name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
    public String getSno() {
        return sno;
    }
    public String getName() {
        return name;
    }
    public int getAge() {
        return age;
    }
    public void setSno(String sno) {
        this.sno = sno;
    }
    public void setName(String name) {
        this.name = name;
    }
    public void setAge(int age) {
        this.age = age;
    }
}

在该项目模块下,新建一个目录lib,将dom4j.jar包导入,并将包添加到类路径下。


4️⃣ 编写Dom4jTest类,用于实现解析,使用到了JUnit测试技术:


Dom4jTest类的完整代码如下,具体内容解释参考代码注释:

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.junit.Test;
import java.util.List;
/**
 * @author 兴趣使然黄小黄
 * @version 1.0
 */
public class Dom4jTest {
    /**
     * 读取xml获取document对象的方法
     * @throws DocumentException
     */
    @Test
    public void test01() throws DocumentException {
        // 创建一个SaxReader输入流,去读取xml配置文件,生成Document对象
        SAXReader saxReader = new SAXReader();
        Document document = saxReader.read("src/students.xml");
        //测试是否读取
        System.out.println(document);
    }
    /**
     * 读取students.xml文件生成Student类
     * @throws DocumentException
     */
    @Test
    public void test02() throws DocumentException {
        //1.读取xml文件
        SAXReader saxReader = new SAXReader();
        //在Junit测试中,相对路径从模块名算起
        Document document = saxReader.read("src/students.xml");
        //2.通过文档对象获取根元素
        Element rootElement = document.getRootElement();
        //System.out.println(rootElement);
        //3.通过根元素获取student标签对象
        //element()和elements()都是通过标签名查找子元素
        List<Element> students = rootElement.elements("student");
        //4.遍历,处理每个student标签转换为Student类
        System.out.println("|\t\t学号\t\t|\t\t姓名\t\t|\t\t年龄\t\t|");
        for (Element student :
                students) {
            //asXML将标签对象转换为标签字符串
            //System.out.println(student.asXML());
            Element nameElement = student.element("name");
            //获取标签中的文本内容
            String nameText = nameElement.getText();
            //也可以直接通过student.elementText()方法一次性得到对应标签的文本内容
            String ageText = student.elementText("age");
            //获取标签内的属性
            String snoText = student.attributeValue("sno");
            //打印结果
            System.out.println("\t"+ snoText + "\t\t\t" + nameText + "\t\t\t\t" + ageText + "\t\t");
        }
    }
}

test01的测试结果如下:



test02的测试结果如下:

相关文章
|
JavaScript 前端开发 Go
CSS 与 JS 对 DOM 解析和渲染的影响
【10月更文挑战第16天】CSS 和 JS 会在一定程度上影响 DOM 解析和渲染,了解它们之间的相互作用以及采取适当的优化措施是非常重要的。通过合理的布局和加载策略,可以提高网页的性能和用户体验,确保页面能够快速、流畅地呈现给用户。在实际开发中,要根据具体情况进行权衡和调整,以达到最佳的效果。
442 57
|
4月前
|
XML 数据采集 API
用Lxml高效解析XML格式数据:以天气API为例
免费Python教程:实战解析中国天气网XML数据,详解Lxml库高效解析技巧、XPath用法、流式处理大文件及IP封禁应对策略,助你构建稳定数据采集系统。
263 0
|
11月前
|
存储 Java 文件存储
微服务——SpringBoot使用归纳——Spring Boot使用slf4j进行日志记录—— logback.xml 配置文件解析
本文解析了 `logback.xml` 配置文件的详细内容,包括日志输出格式、存储路径、控制台输出及日志级别等关键配置。通过定义 `LOG_PATTERN` 和 `FILE_PATH`,设置日志格式与存储路径;利用 `&lt;appender&gt;` 节点配置控制台和文件输出,支持日志滚动策略(如文件大小限制和保存时长);最后通过 `&lt;logger&gt;` 和 `&lt;root&gt;` 定义日志级别与输出方式。此配置适用于精细化管理日志输出,满足不同场景需求。
2692 1
|
9月前
|
机器学习/深度学习 数据采集 JavaScript
用深度学习提升DOM解析——自动提取页面关键区块
本文介绍了一次二手车数据爬虫事故的解决过程,从传统XPath方案失效到结合深度学习语义提取的成功实践。面对懂车帝平台的前端异步渲染和复杂DOM结构,通过Playwright动态渲染、代理IP隐藏身份,以及BERT模型对HTML块级语义识别,实现了稳定高效的字段提取。此方法抗结构变化能力强,适用于复杂网页数据采集,如二手车、新闻等领域。架构演进从静态爬虫到动态爬虫再到语义解析,显著提升效率与稳定性。
334 13
用深度学习提升DOM解析——自动提取页面关键区块
|
11月前
|
XML JavaScript Android开发
【Android】网络技术知识总结之WebView,HttpURLConnection,OKHttp,XML的pull解析方式
本文总结了Android中几种常用的网络技术,包括WebView、HttpURLConnection、OKHttp和XML的Pull解析方式。每种技术都有其独特的特点和适用场景。理解并熟练运用这些技术,可以帮助开发者构建高效、可靠的网络应用程序。通过示例代码和详细解释,本文为开发者提供了实用的参考和指导。
421 15
|
11月前
|
Java 关系型数据库 数据库连接
Javaweb之Mybatis入门程序的详细解析
本文详细介绍了一个MyBatis入门程序的创建过程,从环境准备、Maven项目创建、MyBatis配置、实体类和Mapper接口的定义,到工具类和测试类的编写。通过这个示例,读者可以了解MyBatis的基本使用方法,并在实际项目中应用这些知识。
276 11
|
10月前
|
机器学习/深度学习 数据采集 存储
深度学习在DOM解析中的应用:自动识别页面关键内容区块
本文探讨了如何通过深度学习模型优化东方财富吧财经新闻爬虫的性能。针对网络请求、DOM解析与模型推理等瓶颈,采用代理复用、批量推理、多线程并发及模型量化等策略,将单页耗时从5秒优化至2秒,提升60%以上。代码示例涵盖代理配置、TFLite模型加载、批量预测及多线程抓取,确保高效稳定运行,为大规模数据采集提供参考。
274 0
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
9月前
|
Android开发 开发者
Android自定义View之不得不知道的文件attrs.xml(自定义属性)
本文详细介绍了如何通过自定义 `attrs.xml` 文件实现 Android 自定义 View 的属性配置。以一个包含 TextView 和 ImageView 的 DemoView 为例,讲解了如何使用自定义属性动态改变文字内容和控制图片显示隐藏。同时,通过设置布尔值和点击事件,实现了图片状态的切换功能。代码中展示了如何在构造函数中解析自定义属性,并通过方法 `setSetting0n` 和 `setbackeguang` 实现功能逻辑的优化与封装。此示例帮助开发者更好地理解自定义 View 的开发流程与 attrs.xml 的实际应用。
257 2
Android自定义View之不得不知道的文件attrs.xml(自定义属性)
|
XML 前端开发 Java
讲解SSM的xml文件
本文详细介绍了SSM框架中的xml配置文件,包括springMVC.xml和applicationContext.xml,涉及组件扫描、数据源配置、事务管理、MyBatis集成以及Spring MVC的视图解析器配置。
314 1

热门文章

最新文章

推荐镜像

更多
  • DNS