XML解析之JDOM

来源:互联网 发布:速配网软件下载 编辑:程序博客网 时间:2024/06/05 06:18

今天我们来学习JDOM。可以去http://www.jdom.org/downloads/index.html下载JDOM最新版2.0.6。
首先我们来用JDOM写一个XML文件。

public class JDOM01 {    public static void main(String[] args) throws Exception {        Element student = new Element("student");        Attribute id = new Attribute("id", "001");        Attribute xx = new Attribute("xx", "xx");        student.setAttribute(id);        student.setAttribute(xx);        Element name = new Element("name");        name.setText("张三");        student.addContent(name);        Element sex = new Element("sex");        sex.setText("男");        student.addContent(sex);        Element age = new Element("age");        age.setText("20");        student.addContent(age);        Document document = new Document(student);        XMLOutputter out = new XMLOutputter();        out.setFormat(out.getFormat().setEncoding("UTF-8"));        out.output(document, new FileOutputStream("src/student2.xml"));    }}

生成结果在student2.xml中:

<?xml version="1.0" encoding="UTF-8"?><student id="001" xx="xx"><name>张三</name><sex></sex><age>20</age></student>

可以看到JDOM生成的XML文件没有格式化。

下面我们用JDOM解析一个复杂的XML文件,students.xml。

<?xml version="1.0" encoding="UTF-8"?><students>    <student id="001">        <name>张三</name>        <sex></sex>        <age>20</age>    </student>    <student id="002">        <name>李四</name>        <sex></sex>        <age>21</age>    </student></students>
public class JDOM02 {    public static void main(String[] args) throws Exception {        SAXBuilder builder = new SAXBuilder();        Document document = builder.build("src/students.xml");        Element students = document.getRootElement();        List<Element> studentList = students.getChildren("student");        for (Element student : studentList) {            String id = student.getAttributeValue("id");            String name = student.getChildText("name");            String sex = student.getChildText("sex");            String age = student.getChildText("age");            System.out.println(id + " " + name + " " + sex + " " + age);        }    }}

解析得到的结果为:
01 张三 男 20
002 李四 女 21

0 0
原创粉丝点击