import java.io.IOException;
import java.util.List;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
/**
*
* 在实际的开发中经常用到一个特殊的信息,这些信息的值很少需要更新,例如一些配
* 置文件,当整个项目开始运行之后,就会很少需要改动,这样的信息如果存放在数据
* 库中存取和修改都是比较麻烦的,另一方面,由于这样的信息的数据量比较小,所以
* 没有必要专门建立一个表来存放该信息,这时候xml文件就可以派上用场了,至于xml
* 的有点和基本格式就不多说了,这里只是简单说一下怎样将xml文件的信息解析出来。
*
* 现在有一个简单的名为personal.xml文件,内容如下:
* <?xml version="1.0" encoding="UTF-8"?>
* <Person>
* <name>estone</name>
* <birth>85/02/03</birth>
* <lover>myself</lover>
*
* <name>estone's lover</name>
* <birth>xx/xx/xx</birth>
* <lover>estone</lover>
* </Person>
*
* 这时候我们需要将<Person>根目录下的所有元素都要解析出来,这时候我们可以使用一个
* java的xml解析工具来实现。具体的代码如下:
* */
/**
* 功能描述:Jdom解析XML文件示例
*
* @author estone
* @version final
* */
public class JdomDemo {
/**
* 该文件存放在D盘根目录下。注意此处路径的写<br>
* 法"\\",因为一个"\"是转义字符,"\\"在程序中转<br>
* 义成我们常用的路径表示形式"\"。<br>
* */
public static String path = "D:\\personal.xml";
/**
* 功能描述:将Personal.xml中所有元素的值都打印出来
* */
public static boolean printlnPersonContent() {
/* 采用默认解析方式 */
SAXBuilder builder = new SAXBuilder(false);
try {
Document xml = builder.build(path);// 获取文档内容
Element root = xml.getRootElement();// 获取文档的根元素
List nameList = root.getChildren("name");// 获取根目录下的所有为name的子元素
List birthList = root.getChildren("birth");// 获取根目录下的所有为name的子元素
List loverList = root.getChildren("lover");// 获取根目录下的所有为name的子元素
System.out.println();
System.out.println("----------------personal.xml----------------");
System.out.println();
for(int i =0;i<nameList.size();i++){
System.out.println(" 元素 name 的值为 "+((Element)nameList.get(i)).getText());
System.out.println(" 元素 birth 的值为 "+((Element)birthList.get(i)).getText());
System.out.println(" 元素 lover 的值为 "+((Element)loverList.get(i)).getText());
System.out.println();
}
} catch (JDOMException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return false;
}
public static void main(String[] args) throws Exception {
printlnPersonContent();
}
}