使用Dmo4j解析xml总结

前端之家收集整理的这篇文章主要介绍了使用Dmo4j解析xml总结前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

已知xml结构如下:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <Level>
  3. <level1 id="level1">
  4. <grade>1</grade>
  5. <expnumber>10</expnumber>
  6. <expname>V1</expname>
  7. </level1>
  8. <level2 id="level2">
  9. <grade>2</grade>
  10. <expnumber>20</expnumber>
  11. <expname>V2</expname>
  12. </level2>
  13. <level3 id="level3">
  14. <grade>3</grade>
  15. <expnumber>30</expnumber>
  16. <expname>V3</expname>
  17. </level3>
  18. <level4 id="level4">
  19. <grade>4</grade>
  20. <expnumber>40</expnumber>
  21. <expname>V4</expname>
  22. </level4>
  23. <level5 id="level5">
  24. <grade>5</grade>
  25. <expnumber>50</expnumber>
  26. <expname>V5</expname>
  27. </level5>
  28. <level6 id="level6">
  29. <grade>6</grade>
  30. <expnumber>60</expnumber>
  31. <expname>V6</expname>
  32. </level6>
  33. <level7 id="level7">
  34. <grade>7</grade>
  35. <expnumber>70</expnumber>
  36. <expname>V7</expname>
  37. </level7>
  38. <level8 id="level8">
  39. <grade>8</grade>
  40. <expnumber>80</expnumber>
  41. <expname>V8</expname>
  42. </level8>
  43. <level9 id="level9">
  44. <grade>9</grade>
  45. <expnumber>90</expnumber>
  46. <expname>V9</expname>
  47. </level9>
  48. <level10 id="level10">
  49. <grade>10</grade>
  50. <expnumber>100</expnumber>
  51. <expname>V10</expname>
  52. </level10>
  53. <level11 id="level11">
  54. <grade>11</grade>
  55. <expnumber>120</expnumber>
  56. <expname>V11</expname>
  57. </level11>
  58. <level12 id="level12">
  59. <grade>12</grade>
  60. <expnumber>140</expnumber>
  61. <expname>V12</expname>
  62. </level12>
  63. <level13 id="level13">
  64. <grade>13</grade>
  65. <expnumber>160</expnumber>
  66. <expname>V13</expname>
  67. </level13>
  68. <level14 id="level14">
  69. <grade>14</grade>
  70. <expnumber>180</expnumber>
  71. <expname>V14</expname>
  72. </level14>
  73. <level15 id="level15">
  74. <grade>15</grade>
  75. <expnumber>200</expnumber>
  76. <expname>V15</expname>
  77. </level15>
  78. <level16 id="level16">
  79. <grade>16</grade>
  80. <expnumber>220</expnumber>
  81. <expname>V16</expname>
  82. </level16>
  83. <level17 id="level17">
  84. <grade>17</grade>
  85. <expnumber>240</expnumber>
  86. <expname>V17</expname>
  87. </level17>
  88. <level18 id="level18">
  89. <grade>18</grade>
  90. <expnumber>260</expnumber>
  91. <expname>V18</expname>
  92. </level18>
  93. <level19 id="level19">
  94. <grade>19</grade>
  95. <expnumber>300</expnumber>
  96. <expname>V19</expname>
  97. </level19>
  98. <level20 id="level20">
  99. <grade>20</grade>
  100. <expnumber>340</expnumber>
  101. <expname>V20</expname>
  102. </level20>
  103. <level21 id="level21">
  104. <grade>21</grade>
  105. <expnumber>380</expnumber>
  106. <expname>V21</expname>
  107. </level21>
  108. <level22 id="level22">
  109. <grade>22</grade>
  110. <expnumber>420</expnumber>
  111. <expname>V22</expname>
  112. </level22>
  113. <level23 id="level23">
  114. <grade>23</grade>
  115. <expnumber>460</expnumber>
  116. <expname>V23</expname>
  117. </level23>
  118. <level24 id="level24">
  119. <grade>24</grade>
  120. <expnumber>500</expnumber>
  121. <expname>V24</expname>
  122. </level24>
  123. <level25 id="level25">
  124. <grade>25</grade>
  125. <expnumber>600</expnumber>
  126. <expname>V25</expname>
  127. </level25>
  128. <level26 id="level26">
  129. <grade>26</grade>
  130. <expnumber>700</expnumber>
  131. <expname>V26</expname>
  132. </level26>
  133. <level27 id="level27">
  134. <grade>27</grade>
  135. <expnumber>800</expnumber>
  136. <expname>V27</expname>
  137. </level27>
  138. <level28 id="level28">
  139. <grade>28</grade>
  140. <expnumber>900</expnumber>
  141. <expname>V28</expname>
  142. </level28>
  143. <level29 id="level29">
  144. <grade>29</grade>
  145. <expnumber>1400</expnumber>
  146. <expname>V29</expname>
  147. </level29>
  148. <level30 id="level30">
  149. <grade>30</grade>
  150. <expnumber>1900</expnumber>
  151. <expname>V30</expname>
  152. </level30>
  153. <level31 id="level31">
  154. <grade>31</grade>
  155. <expnumber>3000</expnumber>
  156. <expname>V31</expname>
  157. </level31>
  158. <level32 id="level32">
  159. <grade>32</grade>
  160. <expnumber>5000</expnumber>
  161. <expname>V32</expname>
  162. </level32>
  163. <level33 id="level33">
  164. <grade>33</grade>
  165. <expnumber>10000</expnumber>
  166. <expname>V33</expname>
  167. </level33>
  168. </Level>
解析代码如下:
  1. package com.mvc;
  2.  
  3. import java.io.File;
  4. import java.util.ArrayList;
  5. import java.util.List;
  6. import org.dom4j.Document;
  7. import org.dom4j.Element;
  8. import org.dom4j.io.SAXReader;
  9. import org.junit.Test;
  10. import com.core.BaseJunitTest;
  11. import com.mvc.vo.LevelVo;
  12. public class Dom4jTest extends BaseJunitTest{
  13. private List<LevelVo> levelList=new ArrayList<LevelVo>();
  14. @Test
  15. public void test() throws Exception {
  16. // 创建saxReader对象
  17. SAXReader reader = new SAXReader();
  18. // 通过read方法读取一个文件 转换成Document对象
  19. Document document = reader.read(new File("resource/level.xml"));
  20. //获取根节点元素对象
  21. Element root = document.getRootElement();
  22. List<Element> childElements = root.elements();
  23. System.out.println("childElements的节点数是============="+childElements.size());
  24. List<LevelVo> levelList=new ArrayList<LevelVo>();
  25. //已知属性名情况下
  26. for (Element child : childElements) {
  27. System.out.println("id: " + child.attributeValue("id"));
  28. List<Element> grandSonElements = child.elements();
  29. LevelVo levelVo=new LevelVo();
  30. for (Element grandSon : grandSonElements) {
  31. if(grandSon.getQualifiedName().equals("grade")){
  32. levelVo.setGrade(grandSon.getData().toString());
  33. }
  34. if(grandSon.getQualifiedName().equals("expnumber")){
  35. levelVo.setExpnumber(Long.parseLong(grandSon.getData().toString()));
  36. }
  37. if(grandSon.getQualifiedName().equals("expname")){
  38. levelVo.setExpname(grandSon.getData().toString());
  39. }
  40. }
  41. levelList.add(levelVo);
  42. }
  43. }
  44. public List<LevelVo> getLevelList() {
  45. return levelList;
  46. }
  47. public void setLevelList(List<LevelVo> levelList) {
  48. this.levelList = levelList;
  49. }
  50. }

猜你在找的XML相关文章