java中读xml文件,获取文件本身所在的磁盘位置

来源:互联网 发布:js延迟执行方法 编辑:程序博客网 时间:2024/06/06 05:12

获取文件本身所在的磁盘位置

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>

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;
}


}


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;
}
}




0 0