Domj4读取XML文件--实现获取XML文件中所有的标签节点

前端之家收集整理的这篇文章主要介绍了Domj4读取XML文件--实现获取XML文件中所有的标签节点前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

Domj4读取XML文件--实现获取XML文件中所有的标签节点

contact.xml

<?xml version="1.0" encoding="GBK"?>
<contactList>
    <contact id="001">
		<name>张三</name>
		<age>20</age>
		<phone>1234567</phone>
		<email>1234</email>
		<qq>222</qq>
	</contact>
	<contact id="002">
		<name>lisi</name>
		<age>20</age>
		<phone>1234567</phone>
		<email>1234</email>
		<qq>222</qq>
	</contact>
</contactList>


Demo2.java

实现获取XML文件contact.xml中的所有节点

package gz.itcast.a_dom4j_read;

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

import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;
import org.junit.Test;

/*
 * 第二个dome4j读取XML文件内容的例子
 * 节点
 * 标签
 * 属性
 * 文本
 */
public class Demo2 {
	/*
	 * 得到节点信息
	 * 
	 */
	@Test
	public void test1() throws Exception{
		SAXReader reader = new SAXReader();
		Document doc = reader.read(new File("./src/contact.xml"));
		//nodeIterator:得到当前节点下的所有子节点对象(不包含孙节点以下的节点)
		Iterator<Node> it = doc.nodeIterator();
		while(it.hasNext()){
			Node node = it.next();//取出元素
			
			String name = node.getName();//得到结点名称
			System.out.println(name);
			//继续取出其下面的子节点
			//自由标签节点才有子节点
			//判断当前节点是否是标签节点
			if(node instanceof Element){
				Element elem = (Element)node;
				Iterator<Node> it2 = elem.nodeIterator();
				while(it2.hasNext()){
					Node n2 = it2.next();
					System.out.println(n2.getName());
				}
			}
		}
	}
	
	/*
	 * 遍历XML文档的所有节点
	 */
	@Test
	public void test2() throws Exception{
		//读取XML文档,返回Document对象
		SAXReader reader = new SAXReader();
		Document doc = reader.read(new File("./src/contact.xml"));
		
		//得到根标签
		Element rooElem = doc.getRootElement();
		getChildNodes(rooElem);
	}
	/*
	 * 获取传入的标签下的所有子节点
	 */
	private void getChildNodes(Element elem) {
		System.out.println(elem.getName());
		
		//得到子节点
		Iterator<Node> it = elem.nodeIterator();
		while(it.hasNext()){
			Node node = it.next();
			//判断是否是标签节点
			if(node instanceof Element){
				Element el = (Element)node;
				//递归取下面的所有节点
				getChildNodes(el);
			}
		}
	}
}

猜你在找的XML相关文章