首页 > 代码库 > java通过dom4j处理xml文档
java通过dom4j处理xml文档
最近在用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 学号:201408043 专业:体育 美术 舞蹈 4 姓名:孙子5 学号:201408056 专业:数学 物理 英语
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。