J2EE&XML解析&dom4j的使用

简介: J2EE&XML解析&dom4j的使用

一.Java中配置文件的三种方式及读取方式

  1. 同包 Demo01.class.getResourceAsStream("db.properties");
  2. 根路径 Demo01.class.getResourceAsStream("/db.properties");
  3. WIN-INF安全路径 Demo01.class.getResourceAsStream("/WEB-IEF/db.properties");

二.dom4j的使用  常用方法

  • selectSingleNode
  • selectNodes
  • attributeValue
  • getText

三.xpath的使用

语法

       ① / 定位路径

       ② @ 属性

案例

       查找s002学生姓名

<?xml version="1.0" encoding="UTF-8"?>
<students>
    <student sid="s001">
        <name>小明</name>
    </student>
    <student sid="s002">
        <name>小芳</name>
    </student>
    <student sid='s003'>
        <name>小王</name>
    </student>
</students>
//解析 查找s001学生姓名
public class Demo02 {
    public static void main(String[] args) throws DocumentException {
        InputStream in = Demo02.class.getResourceAsStream("students.xml");
        SAXReader reader = new  SAXReader();
        Document doc = reader.read(in);
         String name = doc.selectSingleNode("/students/student[@sid='s001']/name").getText();
         System.out.println(name);
    }
}

例如:

package com.zking.xmlparse;
import java.io.InputStream;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class Demo04 {
    public static void main(String[] args) throws DocumentException {
        //先通过类路径获取XML文件的输入流
        InputStream in = Demo04.class.getResourceAsStream("/config.xml");
        SAXReader reader = new SAXReader();
        //然后使用SAXReader读取输入流并解析成Document对象
        Document doc = reader.read(in);
        //接着获取XML文件的根元素
        Element root = doc.getRootElement();
        //并通过selectNodes方法获取所有名为"action"的子元素列表
        List<Element> nodes = root.selectNodes("action");
        //遍历每一个"action"元素
        for (Element el : nodes) {
            //并获取其"path"和"type"属性的值
            String path = el.attributeValue("path");
            String type = el.attributeValue("type");
            System.out.println(path);
            System.out.println(type);
            //然后通过selectNodes方法获取其所有名为"forward"的子元素列表
            List<Element> forward = el.selectNodes("forward");
            //遍历每一个"forward"元素
            for (Element el2 : forward) {
                //并获取其"name"、"path"和"redirect"属性的值
                String name = el2.attributeValue("name");
                String path2 = el2.attributeValue("path");
                String redirect = el2.attributeValue("redirect");
                //最后将获取的值输出到控制台上
                System.out.println(name);
                System.out.println(path2);
                System.out.println(redirect);
            }
        }
    }
}
相关文章
|
12月前
|
JavaScript 前端开发 Go
CSS 与 JS 对 DOM 解析和渲染的影响
【10月更文挑战第16天】CSS 和 JS 会在一定程度上影响 DOM 解析和渲染,了解它们之间的相互作用以及采取适当的优化措施是非常重要的。通过合理的布局和加载策略,可以提高网页的性能和用户体验,确保页面能够快速、流畅地呈现给用户。在实际开发中,要根据具体情况进行权衡和调整,以达到最佳的效果。
339 57
|
7月前
|
存储 Java 文件存储
微服务——SpringBoot使用归纳——Spring Boot使用slf4j进行日志记录—— logback.xml 配置文件解析
本文解析了 `logback.xml` 配置文件的详细内容,包括日志输出格式、存储路径、控制台输出及日志级别等关键配置。通过定义 `LOG_PATTERN` 和 `FILE_PATH`,设置日志格式与存储路径;利用 `&lt;appender&gt;` 节点配置控制台和文件输出,支持日志滚动策略(如文件大小限制和保存时长);最后通过 `&lt;logger&gt;` 和 `&lt;root&gt;` 定义日志级别与输出方式。此配置适用于精细化管理日志输出,满足不同场景需求。
1688 1
|
7月前
|
XML JavaScript Android开发
【Android】网络技术知识总结之WebView,HttpURLConnection,OKHttp,XML的pull解析方式
本文总结了Android中几种常用的网络技术,包括WebView、HttpURLConnection、OKHttp和XML的Pull解析方式。每种技术都有其独特的特点和适用场景。理解并熟练运用这些技术,可以帮助开发者构建高效、可靠的网络应用程序。通过示例代码和详细解释,本文为开发者提供了实用的参考和指导。
185 15
|
12月前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
11月前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
276 2
|
7月前
|
算法 测试技术 C语言
深入理解HTTP/2:nghttp2库源码解析及客户端实现示例
通过解析nghttp2库的源码和实现一个简单的HTTP/2客户端示例,本文详细介绍了HTTP/2的关键特性和nghttp2的核心实现。了解这些内容可以帮助开发者更好地理解HTTP/2协议,提高Web应用的性能和用户体验。对于实际开发中的应用,可以根据需要进一步优化和扩展代码,以满足具体需求。
665 29
|
7月前
|
前端开发 数据安全/隐私保护 CDN
二次元聚合短视频解析去水印系统源码
二次元聚合短视频解析去水印系统源码
192 4
|
7月前
|
JavaScript 算法 前端开发
JS数组操作方法全景图,全网最全构建完整知识网络!js数组操作方法全集(实现筛选转换、随机排序洗牌算法、复杂数据处理统计等情景详解,附大量源码和易错点解析)
这些方法提供了对数组的全面操作,包括搜索、遍历、转换和聚合等。通过分为原地操作方法、非原地操作方法和其他方法便于您理解和记忆,并熟悉他们各自的使用方法与使用范围。详细的案例与进阶使用,方便您理解数组操作的底层原理。链式调用的几个案例,让您玩转数组操作。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
7月前
|
移动开发 前端开发 JavaScript
从入门到精通:H5游戏源码开发技术全解析与未来趋势洞察
H5游戏凭借其跨平台、易传播和开发成本低的优势,近年来发展迅猛。接下来,让我们深入了解 H5 游戏源码开发的技术教程以及未来的发展趋势。
|
7月前
|
存储 前端开发 JavaScript
在线教育网课系统源码开发指南:功能设计与技术实现深度解析
在线教育网课系统是近年来发展迅猛的教育形式的核心载体,具备用户管理、课程管理、教学互动、学习评估等功能。本文从功能和技术两方面解析其源码开发,涵盖前端(HTML5、CSS3、JavaScript等)、后端(Java、Python等)、流媒体及云计算技术,并强调安全性、稳定性和用户体验的重要性。

推荐镜像

更多
  • DNS