标签:style blog color io ar java for sp 文件
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 @Test 31 /** 32 * 获取XML文件的根元素,并打印输出根元素的名字 33 * 输出结果:list 34 */ 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 @Test 41 /** 42 * 获取当前元素下指定名字的子元素,并输出该元素的属性名字和属性值 43 * 输出结果:id 1 id 1 44 */ 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 @Test 57 /** 58 * 获取该元素下所有的元素,返回List集合,迭代输出所有的元素名字,属性名和属性值 59 * 输出结果: 元素名:emp 属性名:id 属性值:1 60 元素名:emp 属性名:id 属性值:2 61 元素名:emp 属性名:id 属性值:3 62 元素名:emp 属性名:id 属性值:4 63 元素名:emp 属性名:id 属性值:5 64 */ 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 @Test 75 /** 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 }
标签:style blog color io ar java for sp 文件
原文地址:http://www.cnblogs.com/miyin/p/4041471.html