dom4j 块数查寻节点(非遍历方式)

dom4j 块数查找节点(非遍历方式)

 

使用下面这种方式能够直接根据节点的关系查找到节点,然后访问里面的值或者属性

package com.hb;

import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;
import org.junit.Test;
import org.xml.sax.SAXException;

public class Dom4jReadXml {

	/**
	 * 随机的获取节点,即指明节点就能得到相关数据
	 */
	@Test
	public void RandomReadNode(){
		
		SAXReader  saxReader = new SAXReader();
		String filePath = "d:/AppProperty.xml";
		File file = new File(filePath);
		try {
			
			Document document = saxReader.read(file);
			//使用这种方式读取节点需要导入jaxen.jar包
			List list = document.selectNodes("/result/value/no");
			Iterator it = list.iterator();
			
			while(it.hasNext()){
				Node node = (Node)it.next();
				System.out.println(node.getText());
			}
			
			System.out.println(document.selectNodes("value").size());
			
		} catch (DocumentException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
}

 备注:如果想要上面的方法运行正确,除了需要引入dom4j.jar还需要jaxen.jar包