获取文件本身所在的磁盘位置
1.Class.getResource("")方法 http://blog.csdn.net/a15501628162/article/details/24326383
2.在通过servlet中的request获得
request.getServletContext();
ServletContext servletContext=request.getServletContext();
String realPath = servletContext.getRealPath("/WEB-INF/classes/Adress.xml");
File f = new File(realPath);
java中读xml文件
1.Adress.xml
<?xml version="1.0" encoding="UTF-8"?>
<hcData>
<Adress>
<pro>北京</pro>
<city></city>
<jxs></jxs>
</Adress>
<Adress>
<pro>上海</pro>
<city></city>
<jxs></jxs>
</Adress>
<Adress>
<pro>天津</pro>
<city></city>
<jxs></jxs>
</Adress>
<Adress>
<pro>重庆</pro>
<city></city>
<jxs></jxs>
</Adress>
<Adress>
<pro>黑龙江</pro>
<city></city>
<jxs></jxs>
</Adress>
<Adress>
<pro>吉林</pro>
<city></city>
<jxs></jxs>
</Adress>
<Adress>
<pro>辽宁</pro>
<city></city>
<jxs></jxs>
</Adress>
<Adress>
<pro>内蒙古</pro>
<city></city>
<jxs></jxs>
</Adress>
<Adress>
<pro>山西</pro>
<city></city>
<jxs></jxs>
</Adress>
<Adress>
<pro>河北</pro>
<city></city>
<jxs></jxs>
</Adress>
<Adress>
<pro>河南</pro>
<city></city>
<jxs></jxs>
</Adress>
<Adress>
<pro>山东</pro>
<city>青岛</city>
<jxs>青岛店</jxs>
</Adress>
<Adress>
<pro>江苏</pro>
<city>南京</city>
<jxs>南京店</jxs>
</Adress>
<Adress>
<pro>江苏</pro>
<city>淮安</city>
<jxs>淮安店</jxs>
</Adress>
</hcData>
<hcData>
<Adress>
<pro>北京</pro>
<city></city>
<jxs></jxs>
</Adress>
<Adress>
<pro>上海</pro>
<city></city>
<jxs></jxs>
</Adress>
<Adress>
<pro>天津</pro>
<city></city>
<jxs></jxs>
</Adress>
<Adress>
<pro>重庆</pro>
<city></city>
<jxs></jxs>
</Adress>
<Adress>
<pro>黑龙江</pro>
<city></city>
<jxs></jxs>
</Adress>
<Adress>
<pro>吉林</pro>
<city></city>
<jxs></jxs>
</Adress>
<Adress>
<pro>辽宁</pro>
<city></city>
<jxs></jxs>
</Adress>
<Adress>
<pro>内蒙古</pro>
<city></city>
<jxs></jxs>
</Adress>
<Adress>
<pro>山西</pro>
<city></city>
<jxs></jxs>
</Adress>
<Adress>
<pro>河北</pro>
<city></city>
<jxs></jxs>
</Adress>
<Adress>
<pro>河南</pro>
<city></city>
<jxs></jxs>
</Adress>
<Adress>
<pro>山东</pro>
<city>青岛</city>
<jxs>青岛店</jxs>
</Adress>
<Adress>
<pro>江苏</pro>
<city>南京</city>
<jxs>南京店</jxs>
</Adress>
<Adress>
<pro>江苏</pro>
<city>淮安</city>
<jxs>淮安店</jxs>
</Adress>
</hcData>
2.XmlObject.java
package edu.cslg.huachen.util;
public class XmlObject {
private String pro;
private String city;
private String jxs;
public String getPro() {
return pro;
}
public void setPro(String pro) {
this.pro = pro;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getJxs() {
return jxs;
}
public void setJxs(String jxs) {
this.jxs = jxs;
}
}
public class XmlObject {
private String pro;
private String city;
private String jxs;
public String getPro() {
return pro;
}
public void setPro(String pro) {
this.pro = pro;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getJxs() {
return jxs;
}
public void setJxs(String jxs) {
this.jxs = jxs;
}
}
3.ReadXml.java
package edu.cslg.huachen.util;
import java.io.File;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class ReadXml {
public List<XmlObject> readXml(HttpServletRequest request){
// 1.在servlet中通过request获得
// request.getServletContext();
// ServletContext servletContext=request.getServletContext();
// String realPath = servletContext.getRealPath("/WEB-INF/classes/Adress.xml");
// File f = new File(realPath);
// 2.在action中读取
// ServletContext servletContext = ServletActionContext.getServletContext();
// servletContext = servletContext.getRealPath("/WEB-INF/classes/Adress.xml");
// File f = new File(realPath);
// 2.通过Class.getResource("")方法 读取
File f = new File(getClass().getResource("/Adress.xml").getFile());
List<XmlObject> xmlList = new ArrayList<XmlObject>();
SAXReader reader = new SAXReader();
try {
Document document = reader.read(f);
Element element = document.getRootElement();
Iterator<Element> it = element.elementIterator("Adress");
while(it.hasNext()){
XmlObject xmlObject = new XmlObject();
Element ele = it.next();
xmlObject.setPro(ele.elementText("pro"));
xmlObject.setCity(ele.elementText("city"));
xmlObject.setJxs(ele.elementText("jxs"));
xmlList.add(xmlObject);
}
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return xmlList;
}
}
import java.io.File;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class ReadXml {
public List<XmlObject> readXml(HttpServletRequest request){
// 1.在servlet中通过request获得
// request.getServletContext();
// ServletContext servletContext=request.getServletContext();
// String realPath = servletContext.getRealPath("/WEB-INF/classes/Adress.xml");
// File f = new File(realPath);
// 2.在action中读取
// ServletContext servletContext = ServletActionContext.getServletContext();
// servletContext = servletContext.getRealPath("/WEB-INF/classes/Adress.xml");
// File f = new File(realPath);
// 2.通过Class.getResource("")方法 读取
File f = new File(getClass().getResource("/Adress.xml").getFile());
List<XmlObject> xmlList = new ArrayList<XmlObject>();
SAXReader reader = new SAXReader();
try {
Document document = reader.read(f);
Element element = document.getRootElement();
Iterator<Element> it = element.elementIterator("Adress");
while(it.hasNext()){
XmlObject xmlObject = new XmlObject();
Element ele = it.next();
xmlObject.setPro(ele.elementText("pro"));
xmlObject.setCity(ele.elementText("city"));
xmlObject.setJxs(ele.elementText("jxs"));
xmlList.add(xmlObject);
}
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return xmlList;
}
}