利用反射机制对XML文件进行解析

来源:互联网 发布:php 上传图片卡住 编辑:程序博客网 时间:2024/05/17 08:28



package com.example1;import java.lang.reflect.Method;import java.util.HashMap;import java.util.Map;import org.dom4j.Document;import org.dom4j.Element;import org.dom4j.io.SAXReader;import org.junit.Test;import com.none.HelloMyServlet;/** * 解析配置文件  * 将类加载到内存中,然后调用类中方法 *  * @author 25367 * */public class Demo {@Testpublic void f1() throws Exception {// 定一个mapMap<String, String> map = new HashMap<>() ;// 往map中放入一个值  key:/hello   value:com.none.HelloMyServletmap.put("/hello","com.none.HelloMyServlet") ;// 通过key  获取valueString value = map.get("/hello") ;// 通过权限定名 创建一个实例Class clazz = Class.forName(value) ;HelloMyServlet hms = (HelloMyServlet) clazz.newInstance() ;// 调用空参的add方法Method me = clazz.getMethod("add") ;me.invoke(hms) ;}@Testpublic void f2() throws Exception {//解析xml文件// 创建document对象Document doc = new SAXReader().read("E:\\SSD\\Java\\day08\\xml\\web.xml") ;// 通过xpath解析所获取的servlet-class和url-pattern的标签体Element servletClass = (Element) doc.selectSingleNode("//servlet/servlet-class") ; Element urlPattern = (Element) doc.selectSingleNode("//url-pattern") ; // 将两个值放入map中 String classText = servletClass.getText(); String urlText = urlPattern.getText(); // 定一个mapMap<String, String> map = new HashMap<>() ;// 往map中放入一个值  key:/hello   value:com.none.HelloMyServlet//map.put("/hello","com.none.HelloMyServlet") ;map.put(urlText, classText) ;// 通过key  获取valueString value = map.get(urlText) ;// 通过权限定名 创建一个实例Class clazz = Class.forName(value) ;HelloMyServlet hms = (HelloMyServlet) clazz.newInstance() ;// 调用空参的add方法Method me = clazz.getMethod("add") ;me.invoke(hms) ;}}



原创粉丝点击