首页 > 代码库 > dom4j解析XML文件(2)—读取XML文件
dom4j解析XML文件(2)—读取XML文件
Emp.xml:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <list> 3 <emp id="1"> 4 <name>张三</name> 5 <age>34</age> 6 <gender>男</gender> 7 <salary>3000</salary> 8 </emp> 9 <emp id="2">10 <name>李四</name>11 <age>21</age>12 <gender>女</gender>13 <salary>4000</salary>14 </emp>15 <emp id="3">16 <name>王五</name>17 <age>46</age>18 <gender>女</gender>19 <salary>6500</salary>20 </emp>21 <emp id="4">22 <name>赵六</name>23 <age>28</age>24 <gender>男</gender>25 <salary>4400</salary>26 </emp> 27 <emp id="5">28 <name>钱七</name>29 <age>53</age>30 <gender>男</gender>31 <salary>12000</salary>32 </emp> 33 </list>
dom4j读取emp.xml文件的源码:
1 package testReadXML; 2 3 import java.io.File; 4 import java.util.List; 5 6 import org.dom4j.Attribute; 7 import org.dom4j.Document; 8 import org.dom4j.DocumentException; 9 import org.dom4j.Element;10 import org.dom4j.io.SAXReader;11 import org.junit.Test;12 13 public class ReadXML {14 /**15 * 利用dom4j提供的SAXReader对象,将XML文件读取为Document对象16 * @param fileName 文件的名字,如"Emp.xml"17 * @return Document对象18 */19 public static Document readXML(String fileName){20 Document doc = null;21 try {22 SAXReader reader = new SAXReader();23 doc = reader.read(new File(fileName));//read()方法是默认从工程的根路径读取24 return doc;25 } catch (DocumentException e) {26 e.printStackTrace();27 }28 return doc;29 }30 @Test31 /**32 * 获取XML文件的根元素,并打印输出根元素的名字33 * 输出结果:list34 */35 public void rootElement(){36 Document doc = ReadXML.readXML("Emp.xml");//read()方法是默认从工程的根路径读取37 Element root = doc.getRootElement();38 System.out.println(root.getName());//getName()获取Element的名字39 }40 @Test41 /**42 * 获取当前元素下指定名字的子元素,并输出该元素的属性名字和属性值43 * 输出结果:id 1 id 144 */45 public void element(){46 Document doc = ReadXML.readXML("Emp.xml");//read()方法是默认从工程的根路径读取47 Element root = doc.getRootElement();48 Element e = root.element("emp");//element("元素的名字")获取指定元素名字的元素49 Attribute attr1 = e.attribute(0);//获取该元素的属性,0表示第一个属性。50 Attribute attr2 = e.attribute("id");//获取指定名字的属性,"id"表示属性的名字51 System.out.print(attr1.getName()+" ");//获取属性的名字52 System.out.print(attr1.getValue()+" ");//获取属性的值53 System.out.print(attr2.getName()+" ");//获取属性的名字54 System.out.print(attr2.getValue()+" ");//获取属性的值55 }56 @Test57 /**58 * 获取该元素下所有的元素,返回List集合,迭代输出所有的元素名字,属性名和属性值59 * 输出结果: 元素名:emp 属性名:id 属性值:160 元素名:emp 属性名:id 属性值:261 元素名:emp 属性名:id 属性值:362 元素名:emp 属性名:id 属性值:463 元素名:emp 属性名:id 属性值:564 */65 public void elements(){66 Document doc = ReadXML.readXML("Emp.xml");//read()方法是默认从工程的根路径读取67 Element root = doc.getRootElement();68 List<Element> elements = root.elements();//获取该元素下所有的Element,返回list集合69 for (Element element : elements) {70 Attribute attr = element.attribute(0);71 System.out.println("元素名:"+element.getName()+" 属性名:"+attr.getName()+" 属性值:"+attr.getValue());72 }73 }74 @Test75 /**76 * 获取元素名为name的所有text值77 * 输出结果:张三 李四 王五 赵六 钱七 78 */79 public void getTest(){80 Document doc = ReadXML.readXML("Emp.xml");//read()方法是默认从工程的根路径读取81 Element root = doc.getRootElement();82 List<Element> elements = root.elements();//获取该元素下所有的Element,返回list集合83 for (Element element : elements) {84 Element e = element.element("name");85 System.out.print(e.getText()+" ");//getText()获取该元素的text文本86 }87 }88 }
dom4j解析XML文件(2)—读取XML文件
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。