本文采用的SAXBuilder方式读取xml文件,相对于使用DocumentBuilder使用的DocumentBuilderFactory方式简单一点,让初学者比较容易理解。 本文会讲解一下xml文件以及java的知识,而且比较简单,适合初学者。高手牛人可以忽略!
XML文件如下:
<?xml version="1.0" encoding="UTF-8"?> --XML的头部分,关于版本以及编码方式,可以不必理会
<HD> --根节点HD
<disk name="C"> --disk元素为根节点下的第一个节点,一级节点
<capacity>8G</capacity>
<directories>200</directories>
<files>1580</files> </disk>
<disk name="D"> --与上面disk元素同一级
<capacity>10G</capacity>
<directories>500</directories>
<files>3000</files>
</disk>
</HD>
注意:复制XML文件内容的时候,要把后面的注释删掉。
package com.readXml;
import java.io.File;
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;
public class ReadXmlFile {
public static void main(String[] args) throws JDOMException, IOException {
SAXBuilder sb = new SAXBuilder();//建立SAXBuilder对象
Document doc = sb.build("E:/javaProjects/student.xml");//建立document对象
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");//取得disk节点中name的值
String capacity = element.getChildText("capacity");//取得名为capacity的值
String directories = element.getChildText("directories");//取得名为directories的值
String files = element.getChildText("files");//取得名为files的值
System.out.println("磁盘信息:");
System.out.println("分区盘符:"+name);
System.out.println("分区容量:"+capacity);
System.out.println("目录数:"+directories);
System.out.println("文件数:"+files);
System.out.println("-------------------------");
} } }
输出结果:
磁盘信息: 分区盘符:C 分区容量:8G 目录数:200 文件数:1580 -------------------------
磁盘信息: 分区盘符:D 分区容量:10G 目录数:500 文件数:3000 -------------------------
*注意SAXBuilder,document,element对象要引入jdom.jar包
下载地址:
引入方法: 1)右键项目->Properties->java build path->Libraries->add external jars 2)选择你本地电脑的jdom jar包,点击ok,成功如下图: