Domj4读取XML文件--实现获取XML文件中所有的标签节点
发布时间:2020-12-16 02:11:45 所属栏目:百科 来源:网络整理
导读:Domj4读取XML文件--实现获取XML文件中所有的标签节点 contact.xml ?xml version="1.0" encoding="GBK"?contactList contact id="001"name张三/nameage20/agephone1234567/phoneemail1234/emailqq222/qq/contactcontact id="002"namelisi/nameage20/agephone1
|
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);
}
}
}
}
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
