import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
public class JDOMParseExample ... {
public static void main(String[] args)
throws IOException,FileNotFoundException,JDOMException...{
//SAXBuilder使用一个第三方的SAX解析器,可以从不同的输入源来构造JDOM文档对象
SAXBuilder saxBuilder=new SAXBuilder();
Document doc=saxBuilder.build(new FileInputStream("student.xml"));
//getRootElement()用于返回文档的根元素.
Element element=doc.getRootElement();
//Element类中定义了获取子元素的方法,得到所有子元素
List childrenList=element.getChildren();
int j=1;
for(Iterator i=childrenList.iterator();i.hasNext();)...{
//返回迭代的下一个元素
Element current=(Element)i.next();
//得到子元素的名称
String name=current.getName();
System.out.println(name);
//得到子元素属性为性别的值
String str_sex=current.getAttributeValue("性别");
//得到子元素为姓名的值
String str_name=current.getChildText("姓名");
//得到子元素为年龄的值
String str_age=current.getChildText("年龄");
//得到子元素为电话的值
String str_phone=current.getChildText("电话");
//实例化StringBuffer类型的对象
StringBuffer sb=new StringBuffer();
sb.append("************************* ")
.append("* 第 ").append(j).append(" 个元素的名称").append(name).append(" * ")
.append("* 姓名=").append(str_name).append(" * ")
.append("* 性别=").append(str_sex).append(" * ")
.append("* 年龄=").append(str_age).append(" * ")
.append("* 电话=").append(str_phone).append(" * ")
.append("************************* ");
System.out.println(sb.toString());
j++;
}
}
}
以下是XML文档:
<?
xml version="1.0" encoding="GB18030"
?>
< 学生花名册 >
< 学生 性别="男" >
< 姓名 > 李四 </ 姓名 >
< 电话 > 6287555 </ 电话 >
< 年龄 > 15 </ 年龄 >
</ 学生 >
< 学生 性别="男" >
< 姓名 > 张三 </ 姓名 >
< 电话 > 8273425 </ 电话 >
< 年龄 > 13 </ 年龄 >
</ 学生 >
</ 学生花名册 >
< 学生花名册 >
< 学生 性别="男" >
< 姓名 > 李四 </ 姓名 >
< 电话 > 6287555 </ 电话 >
< 年龄 > 15 </ 年龄 >
</ 学生 >
< 学生 性别="男" >
< 姓名 > 张三 </ 姓名 >
< 电话 > 8273425 </ 电话 >
< 年龄 > 13 </ 年龄 >
</ 学生 >
</ 学生花名册 >