XML文档读取 并且创建一个person 将属性赋给person

package cn.dom4j;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;


public class ReadXML {
	
	public static void readXML(){
		
		//创建XML文档读取的dom4j对象
		SAXReader reader = new SAXReader();
		
		//创建输入流
		FileInputStream in = null;
		try {
			in = new FileInputStream("src/person.xml");
			//读取文档 返回文档对象
			Document doc = reader.read(in);
			//获得根元素
			Element root = doc.getRootElement();
			//获得元素名称
			String elementName = root.getName();
			System.out.println(elementName);
			//获得root下的孩子元素
			List<Element> eList = root.elements();
			//遍历子元素
			for(Element element :eList){
				String elename = element.getName();
				System.out.println(elename);
				//获取每一个子元素的属性
				List<Attribute> aList = element.attributes();
				
				//遍历子元素的属性
				/**
				for(Attribute attr : aList){
					//获得属性名字
					String attrName = attr.getName();
					//获得属性值
					String attrVal = attr.getText();
					//打印属性名字和属性值!
					System.out.println("属性名字:" + attrName + "属性值" + attrVal);
				}
				 */
				//根据属性名  获得属性对象
				/*Attribute idattr = element.attribute("id");
				Attribute genderattr = element.attribute("gender");
				*/
				//知道属性名字 直接获取属性值
				/*String attrValue = element.attributeValue("id");
				System.out.println(attrValue);
				String attrGender = element.attributeValue("gender");
				System.out.println(attrGender);
				 */
			}
			
			
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			if(in != null)
				try {
					if(in != null){
						in.close();
					}
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			
			
		}
	}
	
	
	
	
	
	
	
public static void readXML1(){
		
		//创建XML文档读取的dom4j对象
		SAXReader reader = new SAXReader();
		
		//创建输入流
		FileInputStream in = null;
		try {
			in = new FileInputStream("src/person.xml");
			//读取文档 返回文档对象
			Document doc = reader.read(in);
			//获得根元素
			Element root = doc.getRootElement();
			//获得元素名称
			String elementName = root.getName();
			System.out.println(elementName);
			//获得root下的孩子元素
			List<Element> eList = root.elements();
			//遍历子元素
			for(Element element :eList){
				
				//获得子元素person中的子元素 
				List<Element> eList1 = element.elements();
				
				//循环person中所有的子元素
				for(Element ele : eList1){
					
					//获得person下子元素的名字
					String eleName = ele.getName();
					
					//获得person下子元素的值
					
					String eleText = ele.getText();
					
					System.out.println("元素名" + eleName + "值" + eleText);
				}
				
			}
			
			
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			if(in != null)
				try {
					if(in != null){
						in.close();
					}
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			
			
		}
	}




/*
 * 获取到XML中的所有内容,创建一个person类  并创建一个person对象,将元素的属性赋值 给person
 */

public static void readXML3(){
	
	//创建XML文档读取的dom4j对象
	SAXReader reader = new SAXReader();
	
	//创建person的集合
	
	List <person> pList = new ArrayList<person>(); 
	//创建输入流
	FileInputStream in = null;
	try {
		in = new FileInputStream("src/person.xml");
		//读取文档 返回文档对象
		Document doc = reader.read(in);
		//获得根元素
		Element root = doc.getRootElement();
		//获得元素名称
		String elementName = root.getName();
		//获得root下的孩子元素
		List<Element> eList = root.elements();
		//遍历子元素
		for(Element element :eList){

			//获取person元素的2个属性
			String eleID = element.attributeValue("id");
			String eleGender = element.attributeValue("gender");
			
			
			person p = new person();
			p.setGender(eleGender);
			p.setId(new Integer(eleID));
			
			//根据名字来获取子元素的值
			String nameText = element.element("name").getText();
			String addressText = element.element("address").getText();
			String ageText = element.element("age").getText();
			p.setName(nameText);
			p.setAddress(addressText);
			p.setAge( new Integer (ageText));
			
			//把person对象加入集合
			
			pList.add(p);
			
		}
		
		System.out.println(pList);
		
		
	} catch (Exception e) {
		e.printStackTrace();
	}finally{
		if(in != null)
			try {
				if(in != null){
					in.close();
				}
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		
		
	}
}
	
	
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值