使用Dom4j对XML文件进行解析

1、使用Dom4j对XMl文件进行解析。

首先使用Dom4j对文件进行解析,需要一个Dom4j.jar的架包。

现在我们test.xml文件进行解析:

<?xml  version="1.0" encoding="GBK" ?>
<school id="softeem" name="武汉大学">

<clazz id="java1104" num="74">
 <student  sno="1001" name="赵山" sex="男" age="20"/>
 <student  sno="1002" name="唐小嫣" sex="2" age="18"/>
</clazz>

<clazz id="java1105" num="46">
 <student sno="2001" name="王成龙" sex="男" age="20"/>
 <student sno="2002" name="李小冰" sex="女" age="30"/>
</clazz>

<clazz id="java1106" num="48">
 <student sno="3001" name="谢龙锋" sex="男" age="23"/>
 <student sno="3002" name="杨雪" sex="女" age="22"/>
</clazz>

</school>

在对XML文件进行解析的过程,就是对XMl层层深入的问题。就像一颗树,从根到杆,到枝,到叶的过程。

import java.io.File;
import java.util.Iterator;

import javax.persistence.Id;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class TestSAXReader {
 public static void main(String[] args) {
  try {
   SAXReader reader = new SAXReader();
   Document tree = reader.read(new File("f:/xml/test.xml"));
   Element root = tree.getRootElement();
   String value = root.attributeValue("name");
   System.out.println(value);

   Iterator<Element> it = root.elementIterator();
   while (it.hasNext()) {
    Element cla = it.next();
    String claName = cla.attribute("id").getValue();
    String num = cla.attribute("num").getValue();
    System.out.println(claName);
    System.out.println(num);

    Iterator<Element> stus = cla.elementIterator();
    while (stus.hasNext()) {
     Element stu = stus.next();
     String stuNO=stu.attributeValue("sno");
     String stuName=stu.attributeValue("name");
     String stuSex=stu.attributeValue("sex");
     String stuAge=stu.attributeValue("age");
     System.out.println(stuNO+"\t"+stuName+"\t"+stuSex+"\t"+stuAge);
     
    }
    System.out.println("------------------------------------------------");
   }
  } catch (DocumentException e) {
   e.printStackTrace();
  }
 }

}

注意:test.xml是本地上的一个文件,并不在项目中,在这里贴出来,只是为了让读者容易理解。

你可能感兴趣的:(职场,包,休闲,武汉大学,school)