XML基础入门:关于XML解析
目录
一.什么是配置文件?
二,为什么要用到配置文件?
三.如何获取XML所在位置
分类:
1.同包名下
2.根目录下
3.安全目录下
四.如何获取XML内容(dom4j)
步骤思路:
dom4中的方法:
五.xpath的使用
一.什么是配置文件?
配置文件就是作配置的,常见的的后缀名有 : .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中的方法SAXReaderSAXReader 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中的nameNode 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中的方法SAXReaderSAXReader sr = new SAXReader();//3.调用SAXReader read的方法Document read = sr.read(is);//按照Xpath解析的格式//*[@id="csdn-toolbar"]/divNode selectSingleNode = read.selectSingleNode("/students/student[@sid='s001']");System.out.println(selectSingleNode.asXML());
}
}