使用Dmo4j解析xml总结
发布时间:2020-12-16 02:17:40 所属栏目:百科 来源:网络整理
导读: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"?
|
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;
}
}
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
