J2EE基础之XML解析

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

1.XML解析是什么

XML解析(XML parsing)是指将XML文件中的数据解析并转换成计算机程序中可以处理的格式的过程。在XML中,数据被存储为标签和元素的组合,这些标签和元素本质上是一些文本字符串。XML解析器(XML parser)可以读取这些字符串并将它们转换为计算机程序能够使用的数据类型,如字符串、整数、浮点数、日期等。通过XML解析,程序可以方便地访问和操作XML文件中的数据。

2.为什么

优点

       1. 可读性强

               XML文件使用标签来区分不同的元素,具有良好的可读性和可维护性,有助于开发人员理解和处理XML文件。

       2. 结构化数据

               XML提供了一种方式来描述数据的结构和层次结构,有助于开发人员在处理复杂数据结构时强制执行数据结构和约束条件。

       3. 跨平台和通用性强

               由于XML采用标准化格式,它具有跨平台和通用性强的优势,可以与不同平台、不同环境和不同开发语言进行交互。

       4. 改善数据处理效率

               在大量数据需要被处理时,使用XML解析器可以大大提高开发效率。XML解析器将XML文件解析为对象模型或者树状结构,可以轻松地对其进行访问、修改和转换,方便了数据的处理和管理。

💕💕💕总之,使用XML解析可以方便地读取和处理XML文件中的数据,并提高数据处理的效率和可靠性

文字的说服力俨然比不上代码,那么话不多说,我们直接看代码

3.三种配置位置及读取方式

以db_properties配置文件为例:

 

3.1    同一个包中

 读取方式:demo1.class.getResourceAsStream("配置文件的名字");

// 1.同包下
    InputStream asStream = demo1.class.getResourceAsStream("db.properties");//里面放配置文件的名字
    //加载db.properties文件类容所对应的流
    Properties p = new Properties();
    p.load(asStream);
    //打印db.properties文件的类容
    System.out.println(p.getProperty("driver_Class"));//com.mysql.jdbc.Driver

运行结果为:

3.2同一个根目录,不同包

 读取方式:demo1.class.getResourceAsStream(" / 配置文件的名字");

       注意:在写配置文件时,前面要加  /

//2.同一个根目录
    InputStream asStream = demo1.class.getResourceAsStream("/db.properties");//里面放配置文件的名字
    //加载db.properties文件类容所对应的流
    Properties p = new Properties();
    p.load(asStream);
    //打印db.properties文件的类容
    System.out.println(p.getProperty("driver_Class"));//com.mysql.jdbc.Driver

结果与上面那个一样

3.3安全位置--WEB-INF

---   为什么说这是安全位置呢  

-----因为在这个位置的配置文件是不会被泄露的,浏览器去搜索会报 404 的错误,所有它是安全位置,一般我们但是把配置文件放在这个位置,但是这个位置,在我们自己获取时,是要在Servlet里面执行代码,其它代码,与上面两个无异,看下方示例

package com.sy.xml;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/WEByinzi")
public class Webshenyan extends HttpServlet {
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    doPost(request, response);
  }
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    //访问WEB-INF目录下的db.properties
    InputStream is = request.getServletContext().getResourceAsStream("/WEB-INF/db.properties");
    //加载db.properties文件类容所对应的流
    Properties p = new Properties();
    p.load(is);
    //打印db.properties文件的类容
    System.out.println(p.getProperty("driver_Class"));//com.mysql.jdbc.Driver
  }
}

4.dom4J的使用

4.1 dom4J是什么

     DOM4J是一个Java语言的XML解析库,它提供了一种方便、高效、灵活的方式来处理XML文档。 使用DOM4J可以轻松地读取和创建XML文档,支持XPath查询、修改和转换XML文档等功能 今天主要介绍  读取XML文档和XPth查询

四种常用方法

  • selectNode  节点集合
  • .selectSingleNode  单个节点
  • getText  每个标签的内容
  • attributeValue  属性

以students.xml为例

<?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>

selectNode是一个集合,所以查询用foreach,用法还是比较简单的,都是固定的

5.XPth的使用

5.1XPth的作用:

XPath的作用十分广泛,可以用于XML文档的解析、数据抽取、处理和转换等场景,也可以用于Web开发、爬虫等多个领域。而且XPath可以非常快速地定位到一个或多个目标节点,而无需关心它们在文档中的具体位置,从而提高查找效率。

//XPth  查找ids002的名字
      Element node2 = (Element) read.selectSingleNode("students/student[@sid='s002']/name");
      System.out.println(node2.getText());

本期分享就到这里,下次在见😜😜😜😜😜

目录
打赏
0
0
0
0
15
分享
相关文章
微服务——SpringBoot使用归纳——Spring Boot使用slf4j进行日志记录—— logback.xml 配置文件解析
本文解析了 `logback.xml` 配置文件的详细内容,包括日志输出格式、存储路径、控制台输出及日志级别等关键配置。通过定义 `LOG_PATTERN` 和 `FILE_PATH`,设置日志格式与存储路径;利用 `&lt;appender&gt;` 节点配置控制台和文件输出,支持日志滚动策略(如文件大小限制和保存时长);最后通过 `&lt;logger&gt;` 和 `&lt;root&gt;` 定义日志级别与输出方式。此配置适用于精细化管理日志输出,满足不同场景需求。
91 1
【Android】网络技术知识总结之WebView,HttpURLConnection,OKHttp,XML的pull解析方式
本文总结了Android中几种常用的网络技术,包括WebView、HttpURLConnection、OKHttp和XML的Pull解析方式。每种技术都有其独特的特点和适用场景。理解并熟练运用这些技术,可以帮助开发者构建高效、可靠的网络应用程序。通过示例代码和详细解释,本文为开发者提供了实用的参考和指导。
56 15
手动开发-简单的Spring基于XML配置的程序--源码解析
手动开发-简单的Spring基于XML配置的程序--源码解析
129 0
深入理解HTTP/2:nghttp2库源码解析及客户端实现示例
通过解析nghttp2库的源码和实现一个简单的HTTP/2客户端示例,本文详细介绍了HTTP/2的关键特性和nghttp2的核心实现。了解这些内容可以帮助开发者更好地理解HTTP/2协议,提高Web应用的性能和用户体验。对于实际开发中的应用,可以根据需要进一步优化和扩展代码,以满足具体需求。
96 29
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
155 2
JS数组操作方法全景图,全网最全构建完整知识网络!js数组操作方法全集(实现筛选转换、随机排序洗牌算法、复杂数据处理统计等情景详解,附大量源码和易错点解析)
这些方法提供了对数组的全面操作,包括搜索、遍历、转换和聚合等。通过分为原地操作方法、非原地操作方法和其他方法便于您理解和记忆,并熟悉他们各自的使用方法与使用范围。详细的案例与进阶使用,方便您理解数组操作的底层原理。链式调用的几个案例,让您玩转数组操作。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
从入门到精通:H5游戏源码开发技术全解析与未来趋势洞察
H5游戏凭借其跨平台、易传播和开发成本低的优势,近年来发展迅猛。接下来,让我们深入了解 H5 游戏源码开发的技术教程以及未来的发展趋势。

热门文章

最新文章

推荐镜像

更多