Dom4j路径问题

适用Dom4j时关于路径是一个麻烦的问题,所以特地的记录了下:

普通Java/Web项目: 

普通Java项目/Web xml文件与项目同级:

 package com.wt.dom4j; import java.io.File; import java.util.Iterator; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; /** * Dom4j基础操作 * * @author wTang * @editTime 2011年3月15日21:02:20 * */ public class Dom4jParser { public static void main(String[] args) throws DocumentException { parserXml("employee.xml"); } private static void parserXml(String fileName) throws DocumentException { // 适用File适用于普通的java项目 位置存放于项目根目录下 File input = new File(fileName); // SAXReadr对象 SAXReader saxr = new SAXReader(); // 调用SAXReader的read方法将文件对象传入进去即可获得文档对象 Document document = saxr.read(input); // 获得文档的根元素 Element rootElement = document.getRootElement(); // 遍历一级节点 for (Iterator i = rootElement.elementIterator(); i.hasNext();) { Element tag = (Element) i.next(); for (Iterator k = tag.elementIterator(); k.hasNext();) { // 返回下一个迭代元素 Element tag2 = (Element) k.next(); System.out.println(tag2.getName()+":"+tag2.getText()); } } } } 

Dom4j路径问题_第1张图片 

 

 

 

 

普通Java项目/Web xml文件位于src目录下就不能使用上面的方法了:

 package com.wt.dom4j; import java.util.Iterator; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; /** * Dom4j基础操作 * * @author wTang * @editTime 2011年3月15日21:45:36 * */ public class Dom4jParser2 { public static void main(String[] args) throws DocumentException { parserXml("employee2.xml"); } private static void parserXml(String fileName) throws DocumentException { // SAXReadr对象 SAXReader saxr = new SAXReader(); // 使用getResourceAsStream返回的是InputStream流对象 使用getResoruce返回是Java.net.url对象 Document document = saxr.read(Dom4jParser2.class.getClassLoader() .getResourceAsStream(fileName)); // 获得文档的根元素 Element rootElement = document.getRootElement(); // 遍历一级节点 for (Iterator i = rootElement.elementIterator(); i.hasNext();) { Element tag = (Element) i.next(); for (Iterator k = tag.elementIterator(); k.hasNext();) { // 返回下一个迭代元素 Element tag2 = (Element) k.next(); System.out.println(tag2.getName() + ":" + tag2.getText()); } } } } 

 Dom4j路径问题_第2张图片

关于:getResourceAsStream() 和getResource()

推荐适用getResourceAsStream()它返回的是一个 InputStream流对象.

而getResorce()返回的则是一个java.net.url对象

推荐使用getResourceAsStream() .在使用webService的项目中吃过亏,getResource()方法被拒绝.

你可能感兴趣的:(java,webservice,String,File,iterator,文档)