XML基础入门:关于XML解析

简介: XML基础入门:关于XML解析

一.什么是配置文件?

配置文件就是作配置的,常见的的后缀名有 :   .properties   .xml   .yml

二,为什么要用到配置文件?

我的理解是:方便别人用到我所定义的方法时,别人能够快速的入手,并且能节约成本。

又比如:在公司之中,我们常常需要导入外部的xml文件,和让别人使用我们的文件,这时我们只需要修改配置文件就能解决问题。

                 

三.如何获取XML所在位置

分类:

       1.同包名下

       2.根目录下

       3.安全目录下

package com.lya.xml1;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
/**
 * 获取不同位置的xml
 * @author 微微
 *
 */
public class Dome1 {
  public static void main(String[] args) throws Exception {
    //1.通过类加载文件
    InputStream is = Dome1.class.getResourceAsStream("config.properties");
    //2.创建一个XML解析
    Properties po = new Properties();
    //3.调用Properties  load的方法
    po.load(is);
    System.out.println(po.getProperty("driver"));//获取com.mysql.jdbc.Driver
//    //1.通过类加载文件
//    InputStream is = Dome1.class.getResourceAsStream("/config.properties");
//    //2.创建一个XML解析
//    Properties po = new Properties();
//    //3.调用Properties  load的方法
//    po.load(is);
//    System.out.println(po.getProperty("driver"));//获取com.mysql.jdbc.Driver
  }
}

四.如何获取XML内容(dom4j)

步骤思路:

      //1.通过类加载文件 InputStream is Dome2.class.getResourceAsStream("students.xml");

      //2.创建一个dom4中的方法SAXReader SAXReader sr = new SAXReader();

      //3.调用SAXReader read的方法 Document read = sr.read(is);

dom4中的方法:

      1.selectNodes 获取XML中的所有内容

        2.selectSingleNode 获取XML中的指定元素

        3.getText 获取XML中的指定元素的内容

        4.attributevalue 获取XML中的指定标签的属性

package com.lya.xml1;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import java.util.Properties;
import javax.xml.transform.sax.SAXResult;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;
/**
 * 获取XML中的内容(dom4j使用)
 * @author 微微
 *
 */
public class Dome2 {
  public static void main(String[] args) throws Exception {
        //1.通过类加载文件
        InputStream is = Dome2.class.getResourceAsStream("students.xml");
        //2.创建一个dom4j中的方法SAXReader
        SAXReader sr = new SAXReader();
        //3.调用SAXReader read的方法
        Document read = sr.read(is);
        //System.out.println(read.asXML());
        //这里一定要调用dom4j中的asXML()方法。否则会打印地址
//        <?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>
        List <Element>selectNodes = read.selectNodes("/students/student");
        //因为/students/student 位于students.xml中 。所以要用/
        for (Element element : selectNodes) {
//          获取students
//          System.out.println(element.asXML());//得到
//        <students>
//          <student sid="s001">
//            <name>小明</name>
//          </student>
//          <student sid="s002">
//            <name>小芳</name>
//          </student>
//          <student sid="s003">
//            <name>小王</name>
//          </student>
//        </students>
//          获取student中的name
          Node selectSingleNode = element.selectSingleNode("name");
//          System.out.println(selectSingleNode.asXML());
//          <name>小明</name>
//          <name>小芳</name>
//          <name>小王</name>
//          获取name中的文本
//          System.out.println(selectSingleNode.getText());
//          获取指定元素属性
//          System.out.println(element.attributeValue("sid"));
//          根据指定元素获取指定元素属性
          if(element.attributeValue("sid").equals("s002")) {
            System.out.println(element.asXML());
          }
        }
  }
}

五.xpath的使用

   //按照Xpath解析的格式//*[@id="csdn-toolbar"]/div

package com.lya.xml1;
import java.io.InputStream;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;
/**
 * Xpath使用
 * @author 微微
 *
 */
public class Demo3 {
public static void main(String[] args) throws Exception {
  //1.通过类加载文件
  InputStream is = Dome2.class.getResourceAsStream("students.xml");
  //2.创建一个dom4j中的方法SAXReader
  SAXReader sr = new SAXReader();
  //3.调用SAXReader read的方法
  Document read = sr.read(is);
  //按照Xpath解析的格式//*[@id="csdn-toolbar"]/div
  Node selectSingleNode = read.selectSingleNode("/students/student[@sid='s001']");
  System.out.println(selectSingleNode.asXML());
}
}
目录
相关文章
|
7月前
|
存储 Java 文件存储
微服务——SpringBoot使用归纳——Spring Boot使用slf4j进行日志记录—— logback.xml 配置文件解析
本文解析了 `logback.xml` 配置文件的详细内容,包括日志输出格式、存储路径、控制台输出及日志级别等关键配置。通过定义 `LOG_PATTERN` 和 `FILE_PATH`,设置日志格式与存储路径;利用 `&lt;appender&gt;` 节点配置控制台和文件输出,支持日志滚动策略(如文件大小限制和保存时长);最后通过 `&lt;logger&gt;` 和 `&lt;root&gt;` 定义日志级别与输出方式。此配置适用于精细化管理日志输出,满足不同场景需求。
1786 1
|
7月前
|
XML JavaScript Android开发
【Android】网络技术知识总结之WebView,HttpURLConnection,OKHttp,XML的pull解析方式
本文总结了Android中几种常用的网络技术,包括WebView、HttpURLConnection、OKHttp和XML的Pull解析方式。每种技术都有其独特的特点和适用场景。理解并熟练运用这些技术,可以帮助开发者构建高效、可靠的网络应用程序。通过示例代码和详细解释,本文为开发者提供了实用的参考和指导。
202 15
|
7月前
|
Web App开发 移动开发 前端开发
React音频播放器样式自定义全解析:从入门到避坑指南
在React中使用HTML5原生&lt;audio&gt;标签时,开发者常面临视觉一致性缺失、样式定制局限和交互体验割裂等问题。通过隐藏原生控件并构建自定义UI层,可以实现完全可控的播放器视觉风格,避免状态不同步等典型问题。结合事件监听、进度条拖拽、浏览器兼容性处理及性能优化技巧,可构建高性能、可维护的音频组件,满足跨平台需求。建议优先使用成熟音频库(如react-player),仅在深度定制需求时采用原生方案。
258 12
|
8月前
|
存储 索引 Python
Python入门:6.深入解析Python中的序列
在 Python 中,**序列**是一种有序的数据结构,广泛应用于数据存储、操作和处理。序列的一个显著特点是支持通过**索引**访问数据。常见的序列类型包括字符串(`str`)、列表(`list`)和元组(`tuple`)。这些序列各有特点,既可以存储简单的字符,也可以存储复杂的对象。 为了帮助初学者掌握 Python 中的序列操作,本文将围绕**字符串**、**列表**和**元组**这三种序列类型,详细介绍其定义、常用方法和具体示例。
Python入门:6.深入解析Python中的序列
|
8月前
|
存储 Linux iOS开发
Python入门:2.注释与变量的全面解析
在学习Python编程的过程中,注释和变量是必须掌握的两个基础概念。注释帮助我们理解代码的意图,而变量则是用于存储和操作数据的核心工具。熟练掌握这两者,不仅能提高代码的可读性和维护性,还能为后续学习复杂编程概念打下坚实的基础。
Python入门:2.注释与变量的全面解析
|
7月前
|
Java 关系型数据库 数据库连接
Javaweb之Mybatis入门程序的详细解析
本文详细介绍了一个MyBatis入门程序的创建过程,从环境准备、Maven项目创建、MyBatis配置、实体类和Mapper接口的定义,到工具类和测试类的编写。通过这个示例,读者可以了解MyBatis的基本使用方法,并在实际项目中应用这些知识。
174 11
|
7月前
|
移动开发 前端开发 JavaScript
从入门到精通:H5游戏源码开发技术全解析与未来趋势洞察
H5游戏凭借其跨平台、易传播和开发成本低的优势,近年来发展迅猛。接下来,让我们深入了解 H5 游戏源码开发的技术教程以及未来的发展趋势。
|
11月前
|
机器学习/深度学习 数据采集 数据挖掘
Python编程语言的魅力:从入门到进阶的全方位解析
Python编程语言的魅力:从入门到进阶的全方位解析
|
11月前
|
XML 前端开发 Java
XML基本概念入门学习指南
XML(eXtensible Markup Language)是一种可扩展的标记语言,和HTML语言语法类似,同属于标记语言。
381 14
|
11月前
|
存储 弹性计算 NoSQL
"从入门到实践,全方位解析云服务器ECS的秘密——手把手教你轻松驾驭阿里云的强大计算力!"
【10月更文挑战第23天】云服务器ECS(Elastic Compute Service)是阿里云提供的基础云计算服务,允许用户在云端租用和管理虚拟服务器。ECS具有弹性伸缩、按需付费、简单易用等特点,适用于网站托管、数据库部署、大数据分析等多种场景。本文介绍ECS的基本概念、使用场景及快速上手指南。
409 3

推荐镜像

更多
  • DNS