zoukankan      html  css  js  c++  java
  • java通过dom4j处理xml文档

    最近在用dom4j处理xml的数据接口,将java利用dom4j处理xml的过程记录下来。

    Game Stars

    依赖jar包

      1) dom4j-1.6.jar http://www.java2s.com/Code/JarDownload/dom4j/dom4j-1.6.jar.zip

    主要的类

      1) SAXReader , 处理XML的核心类

      2) Document , 代表XML整个文档

      3) Element , 结点

    Always Be Coding

    自己写了个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 专业:数学 物理 英语 

     TO BE CONTINUED……

  • 相关阅读:
    JDK8:Lambda表达式
    静态代理模式
    javaEE servlet tomcat jsp对应关系
    cmake 实现交叉编译注意事项
    vector 初始化
    今儿谈谈:互联网创业公司,CTO,CFO,CEO们各负责什么?
    解答网友问:继续学习计算机还是转成会计专业!?如何做正确选择!
    谈谈关于男孩子学会计什么样?有没有发展钱途!
    代码时代!码农所创造财务机器人是财务人的解药还是毒药!?
    谈谈关于人工智能对财务会计行业的影响
  • 原文地址:https://www.cnblogs.com/erbin/p/3891241.html
Copyright © 2011-2022 走看看