您的位置:首页 > 其它

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

2018-03-09 18:57 513 查看
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();
}

}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐