使用Dmo4j解析xml总结

来源:互联网 发布:网络攻防技术教程 编辑:程序博客网 时间:2024/05/11 12:04

dom4j是用的比较多的解析xml的插件,使用起来也是比较简单灵活的。dom4j需要的jar包,仅仅需要dom4j.jar。本例中用的1.6.1的版本,下载地址:http://download.csdn.net/detail/qq_33556185/9601807

已知xml结构如下:

<?xml version="1.0" encoding="UTF-8"?><Level><level1 id="level1"><grade>1</grade><expnumber>10</expnumber><expname>V1</expname></level1><level2 id="level2"><grade>2</grade><expnumber>20</expnumber><expname>V2</expname></level2><level3 id="level3"><grade>3</grade><expnumber>30</expnumber><expname>V3</expname></level3><level4 id="level4"><grade>4</grade><expnumber>40</expnumber><expname>V4</expname></level4><level5 id="level5"><grade>5</grade><expnumber>50</expnumber><expname>V5</expname></level5><level6 id="level6"><grade>6</grade><expnumber>60</expnumber><expname>V6</expname></level6><level7 id="level7"><grade>7</grade><expnumber>70</expnumber><expname>V7</expname></level7><level8 id="level8"><grade>8</grade><expnumber>80</expnumber><expname>V8</expname></level8><level9 id="level9"><grade>9</grade><expnumber>90</expnumber><expname>V9</expname></level9><level10 id="level10"><grade>10</grade><expnumber>100</expnumber><expname>V10</expname></level10><level11 id="level11"><grade>11</grade><expnumber>120</expnumber><expname>V11</expname></level11><level12 id="level12"><grade>12</grade><expnumber>140</expnumber><expname>V12</expname></level12><level13 id="level13"><grade>13</grade><expnumber>160</expnumber><expname>V13</expname></level13><level14 id="level14"><grade>14</grade><expnumber>180</expnumber><expname>V14</expname></level14><level15 id="level15"><grade>15</grade><expnumber>200</expnumber><expname>V15</expname></level15><level16 id="level16"><grade>16</grade><expnumber>220</expnumber><expname>V16</expname></level16><level17 id="level17"><grade>17</grade><expnumber>240</expnumber><expname>V17</expname></level17><level18 id="level18"><grade>18</grade><expnumber>260</expnumber><expname>V18</expname></level18><level19 id="level19"><grade>19</grade><expnumber>300</expnumber><expname>V19</expname></level19><level20 id="level20"><grade>20</grade><expnumber>340</expnumber><expname>V20</expname></level20><level21 id="level21"><grade>21</grade><expnumber>380</expnumber><expname>V21</expname></level21><level22 id="level22"><grade>22</grade><expnumber>420</expnumber><expname>V22</expname></level22><level23 id="level23"><grade>23</grade><expnumber>460</expnumber><expname>V23</expname></level23><level24 id="level24"><grade>24</grade><expnumber>500</expnumber><expname>V24</expname></level24><level25 id="level25"><grade>25</grade><expnumber>600</expnumber><expname>V25</expname></level25><level26 id="level26"><grade>26</grade><expnumber>700</expnumber><expname>V26</expname></level26><level27 id="level27"><grade>27</grade><expnumber>800</expnumber><expname>V27</expname></level27><level28 id="level28"><grade>28</grade><expnumber>900</expnumber><expname>V28</expname></level28><level29 id="level29"><grade>29</grade><expnumber>1400</expnumber><expname>V29</expname></level29><level30 id="level30"><grade>30</grade><expnumber>1900</expnumber><expname>V30</expname></level30><level31 id="level31"><grade>31</grade><expnumber>3000</expnumber><expname>V31</expname></level31><level32 id="level32"><grade>32</grade><expnumber>5000</expnumber><expname>V32</expname></level32><level33 id="level33"><grade>33</grade><expnumber>10000</expnumber><expname>V33</expname></level33></Level>  
解析代码如下:

package com.mvc;import java.io.File;  import java.util.ArrayList;import java.util.List;  import org.dom4j.Document;  import org.dom4j.Element;  import org.dom4j.io.SAXReader;  import org.junit.Test;  import com.core.BaseJunitTest;import com.mvc.vo.LevelVo;public class Dom4jTest extends BaseJunitTest{     private List<LevelVo> levelList=new ArrayList<LevelVo>();     @Test       public void test() throws Exception {          // 创建saxReader对象          SAXReader reader = new SAXReader();          // 通过read方法读取一个文件 转换成Document对象          Document document = reader.read(new File("resource/level.xml"));          //获取根节点元素对象          Element root = document.getRootElement();          List<Element> childElements = root.elements();        System.out.println("childElements的节点数是============="+childElements.size());        List<LevelVo> levelList=new ArrayList<LevelVo>();        //已知属性名情况下        for (Element child : childElements) {         System.out.println("id: " + child.attributeValue("id"));         List<Element> grandSonElements = child.elements();         LevelVo levelVo=new LevelVo();         for (Element grandSon : grandSonElements) {         if(grandSon.getQualifiedName().equals("grade")){         levelVo.setGrade(grandSon.getData().toString());         }         if(grandSon.getQualifiedName().equals("expnumber")){         levelVo.setExpnumber(Long.parseLong(grandSon.getData().toString()));         }         if(grandSon.getQualifiedName().equals("expname")){         levelVo.setExpname(grandSon.getData().toString());         }}         levelList.add(levelVo);        }    }        public List<LevelVo> getLevelList() {return levelList;    }    public void setLevelList(List<LevelVo> levelList) {this.levelList = levelList;    }      }


1 0
原创粉丝点击