xml 文件如下
<?xml version="1.0" encoding="UTF-8"?>
<articles>
<article category = "xml">
<title>XML 概述</title>
<author>janet</author>
<email>janetvsfei@yahoo.com.cn</email>
<date>20080801</date>
</article>
<article category = "java">
<title>Java 基本语法</title>
<author>janet</author>
<email>janetvsfei@yahoo.com.cn</email>
<date>20080801</date>
</article>
</articles>
java 代码如下
package spring;
import java.io.File;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class test {
public static void main(String [] args)throws Exception{
Document document = null;
try {
SAXReader saxReader = new SAXReader();
document = saxReader.read(new File("f:\\article.xml")); // 读取XML文件,获得document对象
} catch (Exception ex) {
ex.printStackTrace();
}
//获取根节点
Element root = document.getRootElement();
//获取根节点下的子节点
for (Iterator i = root.elementIterator(); i.hasNext();) {
//将每个子节点赋给el
Element el = (Element) i.next();
//如果节点的名称为“article”,输出article元素属性category
if ("article".equals(el.getName())) {//获取节点元素的名称
for(Iterator it = el.attributeIterator();it.hasNext();){
Attribute attribute = (Attribute) it.next();
//获取结点元素的属性的值
String text=attribute.getText();
//输出元素属性值
System.out.println("书籍的类目"+text);
}
//结点元素内容输出(把元素也当成结点)
for(Iterator it=el.elementIterator();it.hasNext();){
Element elchild = (Element) it.next();
if("title".equals(elchild.getName()))
System.out.println(" 书名《"+elchild.getText()+"》");
if("author".equals(elchild.getName()))
System.out.println(" 作者"+elchild.getText()+"。");
if("email".equals(elchild.getName()))
System.out.println(" 邮箱:"+elchild.getText()+"。");
if("date".equals(elchild.getName()))
System.out.println(" 出版日期:"+elchild.getText()+"。");
}
}
}
}
}
/*
* 1、获取根结点 getRootElement
* 2、//获取根节点下的子节点 for (Iterator i = root.elementIterator(); i.hasNext();) {Element el = (Element) i.next();
* 3、获取该节点(元素)的名称 getName()
* 4、获取该元素标签内的内容 getText()
* 5、获取结点的属性 for(Iterator it = el.attributeIterator();it.hasNext();){Attribute attribute = (Attribute) it.next();
*
*/