properties文件的解析方式有java.util.properties这个类来完成 xml文件:应该有一个工具类来完成 jdk/jdom sax解析 由上往下解析 dom4j解析 由外到内解析
首先这是我的xml文件 我要通过dom4j+xpath解析xml文件,首先我们需要导入两个jar包dem4和jaxen(没有的可以去网上下载) 现在我们要获取到sid=s003的name值
public static void main(String[] args) throws DocumentException { InputStream in = XmlParseDemo.class.getResourceAsStream("students.xml"); SAXReader reader = new SAXReader(); Document doc = reader.read(in); // System.out.println(doc.asXML());//输出整个xml文件的值 // 1、获取到所有的学生 List<Element> stules = doc.selectNodes("/students/student");//查student这一组节点 // 2、遍历 for (Element stu : stules) { if("s003".equals(stu.attributeValue("sid"))) { Node nameEle = stu.selectSingleNode("name");//查name单个节点 // System.out.println(nameEle.asXML());//打印<name>小王</name> System.out.println(nameEle.getText());//打印小王,这是第一种方法,通过遍历判断 } } // 做判断、如果sid=s003那么拿到小王 Node stuEleS003 = doc.selectSingleNode("/students/student[@sid='s003']"); System.out.println(stuEleS003.selectSingleNode("name").getText()); }两种方法都放出来了,所以应该打印了两个小王
properties配置文件,风格是一个属性对应于一个值(key = value)这样的键值匹对模式。这样给我的感觉就是每一行properties配置文件的键值,对应着一次赋值。事实上,如果你试验一下,在前后两行properties文件中给同一个属性赋不同值,得到的结果往往是属性是后面赋值的值。properties的局限性在于,只能处理赋值。 xml配置文件则是一个树的结构,因此,可以处理各种各样定义好的情况,例如add一个属性之类的,这在properties配置文件中就没有办法实现了。