兴科cms网站建设系统,苏州保洁公司诗雨,微信一键登录网站怎么做,重庆网站建设公司魁网前言 最近考试周忙得要死#xff0c;但我却不紧不慢#xff0c;还有三天复习时间#xff0c;考试科目几乎都还没学呢。今天更新一个算是工具类-XML文件的解析#xff0c;感觉还是挺有用的#xff0c;之后可以融进自己的项目里。
XML 配置文件解析
0、导入依赖
有点像我…前言 最近考试周忙得要死但我却不紧不慢还有三天复习时间考试科目几乎都还没学呢。今天更新一个算是工具类-XML文件的解析感觉还是挺有用的之后可以融进自己的项目里。
XML 配置文件解析
0、导入依赖
有点像我之前爬虫学的 Jsoup 一样只不过 Jsoup 可以用来解析 HTML这个是解析 XML。 dependencygroupIdorg.dom4j/groupIdartifactIddom4j/artifactIdversion2.1.1/version/dependency
1、配置文件的两种读取方式
1.1、从同级目录读取 语法
类名.class.getResourceAsStream(配置文件名)案例
编写一个数据库配置文件放到和读取类同级的目录下
usernameroot
password123456
urljdbc:mysql://localhost:3306/test
driver_Class5com.mysql.jdbc.Driver
driver_Class8com.mysql.cj.jdbc.Driver
读取
public static void readCurrentDir(String propertyName) throws IOException {// todo 加载同级目录下的配置文件// 1. 加载配置文件,返回输入流 (底层是通过类加载器)InputStream in XMLParser.class.getResourceAsStream(db.properties);// 2. 实例化 Properties 工具类Properties p new Properties();// 3. 调用 load 方法加载输入流p.load(in);// 通过 getProperty 方法输出配置文件中指定key的内容System.out.println(username: p.getProperty(username));System.out.println(password: p.getProperty(password));}
2、从根目录下resources读取 继续把上面的配置文件放到 resources 目录下
public static void readFromResources() throws IOException {// todo 加载同级目录下的配置文件// 1. 加载配置文件,返回输入流 (底层是通过类加载器)InputStream in XMLParser.class.getResourceAsStream(/db.properties);// 2. 实例化 Properties 工具类Properties p new Properties();// 3. 调用 load 方法加载输入流p.load(in);// 通过 getProperty 方法输出配置文件中指定key的内容System.out.println(username: p.getProperty(username));System.out.println(password: p.getProperty(password));}
DOM4J是 dom4j.org 出品的一个开源 XML 解析包。DOM4J应用于 Java 平台采用了 Java 集合框架并完全支持 DOMSAX 和 JAXP。
2、XML 文件的解析
有了上面的铺垫我们就可以把不同位置的 XML 文件都读取进来了接下来介绍常用的简单解析方法。
Dom4j 解析过程
创建SAXReader对象。调用SAXReader对象的 read() 方法将XML文件读入内存并返回一个Document对象。通过Document对象的 getRootElement() 方法获取XML文件中的根节点是一个 Element 对象。通过根节点的静态方法 elements() 获得一个子节点集合。遍历根节点的所有子节点获取需要的元素节点及其属性和文本内容。
打印 xml 文件内容的语法
InputStream in XMLParser.class.getResourceAsStream(/books.xml);SAXReader reader new SAXReader();Document doc reader.read(in);System.out.println(doc.asXML());
下面案例用到的 XML 文件。
bookstorebook categorylovetitle langen黄金时代/titleauthor王小波/authoryear1991/yearprice30.00/price/book
/bookstore
2.1、获取标签内容
public static void dom4j_forEach() throws DocumentException {InputStream in XMLParser.class.getResourceAsStream(/books.xml);SAXReader reader new SAXReader();Document doc reader.read(in);Element root doc.getRootElement();ListElement books root.elements();for (Element book : books) {System.out.println(category: book.elementText(category));System.out.println(title: book.elementText(title));System.out.println(author: book.elementText(author));}}
2.2、添加一个子标签
public static void dom4j_addSubNode() throws DocumentException {InputStream in XMLParser.class.getResourceAsStream(/books.xml);SAXReader reader new SAXReader();Document doc reader.read(in);Element root doc.getRootElement();ListElement books root.elements();for (Element book : books) {Element publish book.addElement(publish);publish.addAttribute(name,publishTime);publish.setText(2003);}System.out.println(doc.asXML());}
后面用到的时候有什么新用法在来更新吧。