java中配置文件的三种配置位置及读取方式
- src根目录下
类名.Class.getREsourceAsStream("/config.properties");
- 与读取配置文件的类在同一包
类名.class.getResourceAsStream("config2.properties");
- WEB-INF(或其子目录下)
ServletContext application = this.getServletContext();
InputStream is =application.getResourceAsStream("/WEB-INF/config3.properties");
XML的作用
配置:
- *.properties
- *.xml
数据交互
- xml
- webservice
- json
properties文件的解析方式有java.util.properties这个类来完成
xml文件:应该有一个工具类来完成
jdk/jdom
sax解析 由上往下解析
dom4j解析 由外到内解析
dom4j+xpath解析xml文件
xpath等同数据库的select语句
document.selectNodes(xpath);//查一组
document.selectSingleNode(xpath);//查单个
解析案例
分析得出具体的实现步骤
- 1.加载资源文件
- 2.解析得到所有的sudent标签
- 3.遍历得到每一个student标签xml内容
- 4.判断该student的sid是否是002
- 5.如果是name进一步解析该student标签下面的子标签name
- 6.一并打印该id的name值
public class Demo3 {
public static void main(String[] args) throws DocumentException {
//1.获取到待解析的资源文件
//2.利用Dom4j进行解析
InputStream in = Demo3.class.getResourceAsStream("/student.xml");
SAXReader reader=new SAXReader();
Document document = reader.read(in);
// System.out.println(document.asXML());
List<Element> stuEles = document.selectNodes("/config/student");
for (Element stuEle : stuEles) {
if("s002".equals(stuEle.attributeValue("sid"))) {
Element nameEle= (Element) stuEle.selectSingleNode("name");
System.out.println("sid="+stuEle.attributeValue("sid")+"sname="+stuEle.attributeValue("name"));
}
}
}
}