dom4j使用XPath解析xml

学习的时候马虎,使用的时候辛苦!

刚才模拟spring的时候,解析spring的配置文件,突然发现竟然好像不会了……

然后又回过头看了下,我用的是dom4j:

beans.xml:




  
    
  

 

解析的过程:
/**
	 * 解析XML
	 * 使用的是dom4j
	 * 将配置文件下的所有的bean节点的信息装入beans
	 * @param fileName
	 */
	private void readXML(String fileName) {
		SAXReader saxReader = new SAXReader();
		Document document = null;
		try {
			URL xmlPath = this.getClass().getClassLoader().getResource(fileName);
			document = saxReader.read(xmlPath);
			Map nsMap = new HashMap();
			nsMap.put("ns", "http://www.springframework.org/schema/beans");  //加入命名空间
			XPath xsub = document.createXPath("//ns:beans/ns:bean");  //创建beans/bean的查询路径
			xsub.setNamespaceURIs(nsMap);
			List elemBeans = xsub.selectNodes(document);  //查询document下的所有bean
			for(Element e: elemBeans){
				String id = e.attributeValue("id");   //获取bean的id和class属性
				String className = e.attributeValue("class");
				System.out.println("id="+id+",class="+className);
				Bean bean = new Bean(id, className);
				beans.add(bean);
			}
			 
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		  
		
	}

使用dom4j的时候需要导入dom4j的jar包,如果还使用了xpath,那么还要导入jaxen-XX-XX的jar包!

你可能感兴趣的:(工作之前的随笔)