最近在用dom4j处理xml的数据接口,将java利用dom4j处理xml的过程记录下来。
导入jar包:dom4j-1.6.jar
下载地址:http://www.java2s.com/Code/JarDownload/dom4j/dom4j-1.6.jar.zip
自己写了个xml文档
1 <school> 2 <student> 3 <name>老子</name> 4 <no>20140804</no> 5 <majors> 6 <major>体育</major> 7 <major>美术</major> 8 <major>舞蹈</major> 9 </majors> 10 </student> 11 <student> 12 <name>孙子</name> 13 <no>20140805</no> 14 <majors> 15 <major>数学</major> 16 <major>物理</major> 17 <major>英语</major> 18 </majors> 19 </student> 20 </school>
下面是java读取文件的代码
1 package tools; 2 3 import java.util.Iterator; 4 import org.dom4j.Document; 5 import org.dom4j.DocumentException; 6 import org.dom4j.Element; 7 import org.dom4j.io.SAXReader; 8 9 public class XMLHandler { 10 11 public static void main(String[] args) { 12 String path = "resource/hello.xml";//可以是本地路径,也可以是网络路径 13 SAXReader reader = new SAXReader(); 14 Document doc = null; 15 try { 16 doc = reader.read(path); //获取整个文档 17 } catch (DocumentException e) { 18 e.printStackTrace(); 19 return; 20 } 21 Element root = doc.getRootElement();//获取到文档的根节点即<school></school> 22 Iterator<Element> stus = root.elementIterator("student");//获取<sutdent></student>迭代 23 //Iterator<Element> stus = root.elementIterator(); 因为school下只有student,这种方法也行 24 Element student; 25 while(stus.hasNext()) { 26 student = stus.next(); 27 System.out.println("姓名:"+student.elementTextTrim("name"));//获取name子结点的值 28 System.out.println("学号:"+student.elementTextTrim("no"));//获取no子结点的值 29 30 Element majors = student.element("majors"); 31 Iterator<Element> major_it = majors.elementIterator("major"); 32 String major_str = ""; 33 Element major; 34 while(major_it.hasNext()) { 35 major = major_it.next(); 36 major_str += major.getTextTrim() + " ";//获取自身结点的值 37 } 38 System.out.println("专业:"+major_str); 39 } 40 41 } 42 }
显示结果
1 姓名:老子 2 学号:20140804 3 专业:体育 美术 舞蹈 4 姓名:孙子 5 学号:20140805 6 专业:数学 物理 英语
java通过dom4j处理xml文档,布布扣,bubuko.com
时间: 2024-12-29 01:58:38