xml解析

简介: xml解析
  • 配置文件在jdbc工具类中的作用
  • java读取不同位置下的配置文件
  • xml常用三种解析方法
  • xml快速解析方式xpath

配置文件在jdbc工具类中的作用

1.方便自己使用数据库时的使用,使用哪个数据库就将哪个数据库解开注释,其他的注释

#oracle9i
#driver=oracle.jdbc.driver.OracleDriver
#url=jdbc:oracle:thin:@localhost:1521:orcl
#user=scott
#pwd=123
#sql2005
#driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
#url=jdbc:sqlserver://localhost:1433;DatabaseName=test1
#user=sa
#pwd=123
#sql2000
#driver=com.microsoft.jdbc.sqlserver.SQLServerDriver
#url=jdbc:microsoft:sqlserver://localhost:1433;databaseName=unit6DB
#user=sa
#pwd=888888
#mysql
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis_ssm?useUnicode=true&characterEncoding=UTF-8&useSSL=false
user=root
pwd=123456

java读取不同位置下的配置文件

1.同包

2.根目录

3.安全目录WEB-INF(提高安全性,db.properties必须放WEB-INF里面)

package com.zhulinjun;
import java.io.InputStream;
import java.util.Properties;
public class demo1 {
  public static void main(String[] args) throws Exception {
    // 1.同包(/XMLl/src/com/zhulinjun/db.properties)src的packge里,通过类加载器加载配置文件
    InputStream in = demo1.class.getResourceAsStream("db.properties");
    Properties p = new Properties();
    // 让properties工具类对象,加载含有答辩。properties文件类容所对应的流
    p.load(in);
      System.out.println(p.getProperty("url"));
    System.out.println(p.getProperty("upass"));
     //2.根目录(/XMLl/conf/config.properties)新建一个Source Folder包conf
     InputStream in1 = demo1.class.getResourceAsStream("/db.properties");
     Properties p1=new Properties();
     p1.load(in1);
     System.out.println(p1.getProperty("url"));
     System.out.println(p1.getProperty("upass"));
  }
}
package com.zhulinjun;
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("/Webinf")
public class WebinfServlet extends HttpServlet {
  private static final long serialVersionUID = 1L;
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    doPost(request, response);
  }
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    //3.安全目录WEB-INF(/XMLl/WebContent/WEB-INF/db.properties)
     InputStream in2 = request.getServletContext().getResourceAsStream("/WEB-INF/db.properties");
     Properties p2=new Properties();
     p2.load(in2);
     System.out.println(p2.getProperty("url"));
     System.out.println(p2.getProperty("upass"));
  }
}

xml常用三种解析方法

package com.zhulinjun;
import java.io.InputStream;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class demo2 {
  public static void main(String[] args) throws Exception {
//        先获取到需要解析的配置文件
      InputStream in = demo2.class.getResourceAsStream("students.xml");
      SAXReader sr=new SAXReader();
      Document doc = sr.read(in);
    //System.out.println(doc.asXML());
//      1.获取所有student标签里的内容
      List<Element> stuEles = doc.selectNodes("/students/student");
      for (Element stuEle : stuEles) {
        //System.out.println(stuEle.asXML());
//      2.获取所有name标签的内容
      Element nameEle = (Element) stuEle.selectSingleNode("name");
      //System.out.println(nameEle.asXML());
//      3.获取标签内部的内容
      //System.out.println(nameEle.getText());
//      4.获取标签属性值,及学生的学号id
      System.out.println(stuEle.attributeValue("sid"));
    }
  }
}

xml快速解析方式xpath

package com.zhulinjun;
import java.io.InputStream;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;
public class demo3 {
  public static void main(String[] args) throws Exception {
//     获取到sid=s002学生的姓名
      InputStream in = demo3.class.getResourceAsStream("students.xml");
      SAXReader sr=new SAXReader();
      Document doc = sr.read(in);
    //System.out.println(doc.asXML());
      List<Element> stuEles = doc.selectNodes("/students/student");
      for (Element stuEle : stuEles) {
          if("s002".equals(stuEle.attributeValue("sid"))) {
            Element nameEle = (Element) stuEle.selectSingleNode("name");
            System.out.println(nameEle.getText());
          }
      }
       //xpath解析
      Element nameEle = (Element) doc.selectSingleNode("/students/student[@sid='s002']/name");
      System.out.println(nameEle.getText());
  }
}
目录
相关文章
|
存储 Java 文件存储
微服务——SpringBoot使用归纳——Spring Boot使用slf4j进行日志记录—— logback.xml 配置文件解析
本文解析了 `logback.xml` 配置文件的详细内容,包括日志输出格式、存储路径、控制台输出及日志级别等关键配置。通过定义 `LOG_PATTERN` 和 `FILE_PATH`,设置日志格式与存储路径;利用 `&lt;appender&gt;` 节点配置控制台和文件输出,支持日志滚动策略(如文件大小限制和保存时长);最后通过 `&lt;logger&gt;` 和 `&lt;root&gt;` 定义日志级别与输出方式。此配置适用于精细化管理日志输出,满足不同场景需求。
3419 1
|
XML 数据采集 API
用Lxml高效解析XML格式数据:以天气API为例
免费Python教程:实战解析中国天气网XML数据,详解Lxml库高效解析技巧、XPath用法、流式处理大文件及IP封禁应对策略,助你构建稳定数据采集系统。
520 0
|
XML JavaScript Android开发
【Android】网络技术知识总结之WebView,HttpURLConnection,OKHttp,XML的pull解析方式
本文总结了Android中几种常用的网络技术,包括WebView、HttpURLConnection、OKHttp和XML的Pull解析方式。每种技术都有其独特的特点和适用场景。理解并熟练运用这些技术,可以帮助开发者构建高效、可靠的网络应用程序。通过示例代码和详细解释,本文为开发者提供了实用的参考和指导。
729 15
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
XML Java 数据格式
手动开发-简单的Spring基于XML配置的程序--源码解析
手动开发-简单的Spring基于XML配置的程序--源码解析
444 0
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
设计模式 存储 安全
【23种设计模式·全精解析 | 创建型模式篇】5种创建型模式的结构概述、实现、优缺点、扩展、使用场景、源码解析
结构型模式描述如何将类或对象按某种布局组成更大的结构。它分为类结构型模式和对象结构型模式,前者采用继承机制来组织接口和类,后者釆用组合或聚合来组合对象。由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则”,所以对象结构型模式比类结构型模式具有更大的灵活性。 结构型模式分为以下 7 种: • 代理模式 • 适配器模式 • 装饰者模式 • 桥接模式 • 外观模式 • 组合模式 • 享元模式
1050 140
【23种设计模式·全精解析 | 创建型模式篇】5种创建型模式的结构概述、实现、优缺点、扩展、使用场景、源码解析
|
算法 测试技术 C语言
深入理解HTTP/2:nghttp2库源码解析及客户端实现示例
通过解析nghttp2库的源码和实现一个简单的HTTP/2客户端示例,本文详细介绍了HTTP/2的关键特性和nghttp2的核心实现。了解这些内容可以帮助开发者更好地理解HTTP/2协议,提高Web应用的性能和用户体验。对于实际开发中的应用,可以根据需要进一步优化和扩展代码,以满足具体需求。
1712 29

推荐镜像

更多
  • DNS