J2EE&XML解析&dom4j的使用

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 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);
            }
        }
    }
}
相关文章
|
20天前
|
JavaScript 前端开发 Go
CSS 与 JS 对 DOM 解析和渲染的影响
【10月更文挑战第16天】CSS 和 JS 会在一定程度上影响 DOM 解析和渲染,了解它们之间的相互作用以及采取适当的优化措施是非常重要的。通过合理的布局和加载策略,可以提高网页的性能和用户体验,确保页面能够快速、流畅地呈现给用户。在实际开发中,要根据具体情况进行权衡和调整,以达到最佳的效果。
|
28天前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
1月前
|
JavaScript 前端开发 算法
React 虚拟 DOM 深度解析
【10月更文挑战第5天】本文深入解析了 React 虚拟 DOM 的工作原理,包括其基础概念、优点与缺点,以及 Diff 算法的关键点。同时,分享了常见问题及解决方法,并介绍了作者在代码/项目上的成就和经验,如大型电商平台的前端重构和开源贡献。
51 3
|
30天前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
1月前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
30天前
|
XML Java 数据格式
手动开发-简单的Spring基于XML配置的程序--源码解析
手动开发-简单的Spring基于XML配置的程序--源码解析
76 0
|
30天前
|
缓存 Java 程序员
Map - LinkedHashSet&Map源码解析
Map - LinkedHashSet&Map源码解析
66 0
|
30天前
|
算法 Java 容器
Map - HashSet & HashMap 源码解析
Map - HashSet & HashMap 源码解析
51 0
|
30天前
|
存储 Java C++
Collection-PriorityQueue源码解析
Collection-PriorityQueue源码解析
58 0
|
30天前
|
安全 Java 程序员
Collection-Stack&Queue源码解析
Collection-Stack&Queue源码解析
74 0

推荐镜像

更多
下一篇
无影云桌面