关于反射的一些基本操作:
// import package /** * @author mly11 * @date 2017年5月11日 下午2:37:44 */ public class ParseXml { /** * 01 * 使用此种方式 目录路径从根目录开始 */ @Test public void testParseXml03() { try { SAXReader reader = new SAXReader(); Document doc = reader.read("src/config"+File.separator+"testxml.xml"); Element root = doc.getRootElement(); Element em; for(Iterator<?> i = root.elementIterator("value"); i.hasNext();){ em = (Element) i.next(); System.out.println(em.elementText("name")); System.out.println(em.elementText("password")); } } catch (Exception e) { e.printStackTrace(); } } /** * 02 * 使用此种方式解析 * 使用 new File */ @Test public void testParseXml01() { // System.getProperty("user.dir") 是动态获得当前文件的路径 // File file = new File(System.getProperty("user.dir")+File.separator+"xmlOfConfig"+File.separator+"testxml.xml"); File file; try { file = new File("xmlOfConfig"+File.separator+"testxml.xml"); SAXReader reader = new SAXReader(); Document doc = reader.read(file); Element root = doc.getRootElement(); Element em ; for(Iterator<?> i = root.elementIterator("value"); i.hasNext();){ em = (Element) i.next(); System.out.println(em.elementText("name")); System.out.println(em.elementText("password")); } } catch (Exception e) { e.printStackTrace(); } } /** * 03 * 使用此种方式获得InputStream, * xml目录只能在src下(可以在src下新建文件夹); */ @Test public void testParseXml02() { // config目录和根目录等价 InputStream in = ParseXml.class.getClassLoader().getResourceAsStream("config"+File.separator+"testxml.xml"); try { SAXReader reader = new SAXReader(); Document doc = reader.read(in); Element root = doc.getRootElement(); Element em ; for(Iterator<?> i = root.elementIterator("value"); i.hasNext();){ em = (Element) i.next(); System.out.println(em.elementText("name")); System.out.println(em.elementText("password")); } } catch (Exception e) { e.printStackTrace(); } } }