一、需要导入JDOM包http://www.jdom.org/
二、XML文件
三、开始解析
public class JDOMTest {
public static void main(String[] args) {
// 进行对books.xml文件的JDOM解析
// 准备工作
// 1.创建一个SAXBuilder的对象
SAXBuilder builder = new SAXBuilder();
try {
// 2.创建一个输入流,将xml文件加载到输入流中
InputStream in = new FileInputStream("books.xml");
// 3.通过saxBuilder的build方法,将输入流加载到saxBuilder中 Document document = builder.build(in);
// 4.通过document对象获取xml文件的根节点
Element rootElement = document.getRootElement();
// 5.获取根节点下的子节点的List集合
List bookList = rootElement.getChildren();
for (Element book : bookList) {
System.out.println("==========开始解析第" + (bookList.indexOf(book) + 1) + "本书==========");
List attrBook = book.getAttributes();
// 解析book的属性集合
for (Attribute attr : attrBook) {
String attrName = attr.getName();
String attrValue = attr.getValue();
System.out.println("属性:"+attrName+"---值:"+attrValue);
}
List bookChildren = book.getChildren();
// 对book节点的子节点的节点名以及节点值的遍历
for (Element element : bookChildren) {
System.out.print("节点:"+element.getName()+"---值:"); System.out.println(element.getValue());
}
System.out.println("==========结束解析第"
+ (bookList.indexOf(book) + 1) + "本书==========");
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JDOMException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
解析结果:
XML包放置问题
直接在你的工程下面建一个xml目录,访问时就直接用xml/XXX.xml就行了
JAVA解析XML实例
Java解析XML的四种方法—DOM/SAX/jdom/dom4j
配制文件(要放在src的根目录下) test.xml
Xml代码
8G
200
1580
10G
500
3000
类 Sample1
Java代码
packagecom.phl;
importjava.util.List;
importorg.jdom.Document;
importorg.jdom.Element;
importorg.jdom.input.SAXBuilder;
publicclassSample1 {
publicstaticvoidmain(String[] args)throwsException {
SAXBuilder sb =newSAXBuilder();// 创建一个SAXBuilder对象
Document doc = sb.build(Sample1.class.getClassLoader().getResourceAsStream("test.xml"));
// 构造文档对象
Element root = doc.getRootElement();// 获取根元素
List list = root.getChildren("disk");// 取名字为disk的所有元素
for(inti =0; i < list.size(); i++) {
Element element = (Element) list.get(i);
String name = element.getAttributeValue("name");// 获取元素中属性为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("-----------------------------------");
}
}
}
公众号:javafirst
网友评论