J2EE(XML的解析)

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: J2EE(XML的解析)

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

  • 同包:

InputStream is(返回值)= 类名.class.getResourceAsStream("db.properties");

  • 根路径:

InputStream is(返回值)= 类名.class.getResourceAsStream("/db.properties");

  • WIN-INF安全路径:

InputStream is(返回值)= req.getServletContext().getResourceAsStream("/WEB-INF/db.properties");

2.xml的解方式

xml解析方式有四种:DOM解析、SAX解析、DOM4J解析、JDOM解析。今天着重讲的是DOM4J

2.1什么是DOM4J?

dom4j 是一个简单的开源库,用于处理 XML、 XPath 和 XSLT,它基于 Java 平台,使用 Java 的集合框架,全面集成了 DOM,SAX 和 JAXP。

2.2demo4的常用方法

              方法                            作用        
selectNodes 获取某一个节点,集合
selectSingleNode 获取单个节点
attributeValue 获取某一个标签属性
getText 获取某一个标签内容

以下用代码使用上面方法:

public static void main(String[] args) throws Exception {
//      先获取到需要的配置
      InputStream is = demo2.class.getResourceAsStream("students.xml");
      SAXReader sa=new SAXReader();
      Document doc = sa.read(is);
//      System.out.println(doc.asXML());
//      获取所有students标签中的内容
      List<Element> stuEles  = doc.selectNodes("/students/student");
//      遍历
      for (Element stuEls : stuEles) {
//        System.out.println(stuEls.asXML());
//        获取所有name标签内容 
        Element nameEls = (Element) stuEls.selectSingleNode("name");
//        System.out.println(nameEls.asXML());
//        获取标签内部的内容
        System.out.println(nameEls.getText());
//        获取标签属性值,即学生的学号
        System.out.println(stuEls.attributeValue("sid"));
      }
    }

2.3XPath的使用

/定义路径[@获取的东西/属性

 

public static void main(String[] args) throws Exception {
//      获取sid=s002学生的姓名
//      先获取到需要的配置
      InputStream is = demo2.class.getResourceAsStream("students.xml");
      SAXReader sa=new SAXReader();
      Document doc = sa.read(is);
//          System.out.println(doc.asXML());
//      获取所有students标签中的内容
      List<Element> stuEles  = doc.selectNodes("/students/student");
            Element nameEls = (Element) doc.selectSingleNode("/students/student[@sid='s002']/name");
        System.out.println(nameEls.getText());
    }
// 结果为:小芳

好了今天君临沂就介绍到这,望大家多多关照谢谢!!!

目录
相关文章
|
25天前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
27天前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
29天前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
28天前
|
XML Java 数据格式
手动开发-简单的Spring基于XML配置的程序--源码解析
手动开发-简单的Spring基于XML配置的程序--源码解析
75 0
|
1月前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
28天前
|
缓存 Java 程序员
Map - LinkedHashSet&Map源码解析
Map - LinkedHashSet&Map源码解析
63 0
|
28天前
|
算法 Java 容器
Map - HashSet & HashMap 源码解析
Map - HashSet & HashMap 源码解析
49 0
|
28天前
|
存储 Java C++
Collection-PriorityQueue源码解析
Collection-PriorityQueue源码解析
58 0
|
28天前
|
安全 Java 程序员
Collection-Stack&Queue源码解析
Collection-Stack&Queue源码解析
72 0
|
8天前
|
消息中间件 缓存 安全
Future与FutureTask源码解析,接口阻塞问题及解决方案
【11月更文挑战第5天】在Java开发中,多线程编程是提高系统并发性能和资源利用率的重要手段。然而,多线程编程也带来了诸如线程安全、死锁、接口阻塞等一系列复杂问题。本文将深度剖析多线程优化技巧、Future与FutureTask的源码、接口阻塞问题及解决方案,并通过具体业务场景和Java代码示例进行实战演示。
27 3

推荐镜像

更多