当xml文件在project的目录下
import java.util.*;
import org.jdom2.*;
import org.jdom2.input.SAXBuilder;
public class example {
public static void main(String[] args) throws Exception{
SAXBuilder sb=new SAXBuilder();
Document doc=sb.build(example.class.getClassLoader().getResourceAsStream("MyXml.xml")); //构造文档对象
Element root=doc.getRootElement(); //获取根元素
List list=root.getChildren("disk");//取名字为disk的所有元素
for(int i=0;i<list.size();i++){
Element element=(Element)list.get(i);
String name=element.getAttributeValue("name");
String capacity=element.getChildText("capacity");//取disk子元素capacity的内容
String directories=element.getChildText("directories");
String files=element.getChildText("files");
System.out.println("磁盘信息:");
System.out.println("分区盘符:"+name);
System.out.println("分区容量:"+capacity);
System.out.println("目录数:"+directories);
System.out.println("文件数:"+files);
System.out.println("-----------------------------------");
}
}
}
当xml文件是在某个包下的时候
package com.yl.readxml;
import java.io.File;
import java.util.List;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
public class ReadXml2 {
/**
* @param args
*/
public static void main(String[] args) throws Exception {
try {
SAXBuilder sb=new SAXBuilder();
String name="bin.com.yl.readxml.test";//bin是eclipse中java编译后的class目录
String newName = name.replaceAll("[.]", "/");
System.out.println(newName+".xml");
Document doc = null;
doc=sb.build(new File(newName+".xml"));
Element root=doc.getRootElement(); //HD
if (root==null) {
System.out.println("root is null");
return;
} else {
System.out.println(root.getName());
}
List list=root.getChildren("person"); //child
for(int i=0;i<list.size();i++) {
Element element=(Element) list.get(i);
String id=element.getAttributeValue("id");
System.out.println("id:" + id);
List idChildElements = element.getChildren();
System.out.println("idChildElements.size():" + idChildElements.size());
for (int k=0;k<idChildElements.size();k++) {
Element element2=(Element) idChildElements.get(k);
System.out.println(element2.getValue());
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}