关于jdom解析XML文件的方法将获得信息转存到PO对象里面

通过java反射机制获取节点,将节点里面的内容存到PO对象中,然后进行数据的增删改查
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;


import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.input.SAXBuilder;
import org.jdom2.input.sax.XMLReaderSAX2Factory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;


import com.highershine.gdna2.entity.po.background.RelativeRelation;
import com.highershine.gdna2.utils.DateTools;


/**
 * <p>“亲缘关系” xml文件(FMQ)解析器</p>
 *
 *
 * @author sped
 *
 */
public class RelativeRelationXmlParser {


	final Logger log = LoggerFactory.getLogger(getClass());
	/**
	 *
	 * @param		xml文件路径
	 * @return
	 * 		List<RelativeRelation>	亲缘关系列表
	 * @throws
	 * 		文件解析异常
	 */
	public static List<RelativeRelation> parseRelativeRelationXmlFile(File xmlFile) {
             InputStream xmlFileStream=null;
             List<RelativeRelation> rrList=null;
             RelativeRelation rr=null;
             try {
            	rrList=new ArrayList<RelativeRelation>();
				xmlFileStream=new FileInputStream(xmlFile);
				SAXBuilder builder=new SAXBuilder(new XMLReaderSAX2Factory(false));
				Document document=builder.build(xmlFileStream);
				Element root=document.getRootElement();
				List<Element> rrElementList=root.getChildren();
				for (int i = 0,size=rrElementList.size(); i < size; i++) {
					 List<Element> rrElements=rrElementList.get(i).getChildren();
					 for (Element element : rrElements) {
						    Class<?> rrClz=Class.forName("com.highershine.gdna2.entity.po.background.RelativeRelation");
						    rr=(RelativeRelation)rrClz.newInstance();
						    Field field=rrClz.getDeclaredField(element.getName());
						    field.setAccessible(true);
						    if ("java.util.Date".equals(field.getType().getName())) {
								field.set(rr, DateTools.stringToDate(element.getTextTrim()));
							} else {
								field.set(rr, element.getTextTrim());
							}
					   }
					rrList.add(i, rr);
				}
			} catch (Exception e) {
				e.printStackTrace();
			}
		return rrList;
	}
}
对应的PO对象:
import java.util.Date;

import com.highershine.gdna2.entity.query.BaseEntity;

public class RelativeRelation extends BaseEntity {
	protected String id;	//	ID
	protected String initServerNo;	//	原始服务器编号
	protected String labId;	//	实验室ID
	protected String relationCategory;	//	亲属关系类型(是否经确认的)
	protected String relationType;	//	亲属关系(父-母,配偶-子女等)
	protected String relative1Id;	//	亲属1ID
	protected String relative2Id;	//	亲属2ID
	protected String seekingPersonId;	//	被寻人员ID
	protected String transferFlag;	//	上报标识
	protected String transferUser;	//	上报人
	protected Date transferDate;	//	上报时间
	protected String deleteFlag;	//	删除标识
	protected String remark;	//	备注
	protected String createUser;	//	创建人
	protected Date createDate;	//	创建时间
	protected String updateUser;	//	更新人
	protected Date updateDate;	//	更新时间


	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getInitServerNo() {
		return initServerNo;
	}

	public void setInitServerNo(String initServerNo) {
		this.initServerNo = initServerNo;
	}

	public String getLabId() {
		return labId;
	}

	public void setLabId(String labId) {
		this.labId = labId;
	}

	public String getRelationCategory() {
		return relationCategory;
	}

	public void setRelationCategory(String relationCategory) {
		this.relationCategory = relationCategory;
	}

	public String getRelationType() {
		return relationType;
	}

	public void setRelationType(String relationType) {
		this.relationType = relationType;
	}

	public String getRelative1Id() {
		return relative1Id;
	}

	public void setRelative1Id(String relative1Id) {
		this.relative1Id = relative1Id;
	}

	public String getRelative2Id() {
		return relative2Id;
	}

	public void setRelative2Id(String relative2Id) {
		this.relative2Id = relative2Id;
	}

	public String getSeekingPersonId() {
		return seekingPersonId;
	}

	public void setSeekingPersonId(String seekingPersonId) {
		this.seekingPersonId = seekingPersonId;
	}

	public String getTransferFlag() {
		return transferFlag;
	}

	public void setTransferFlag(String transferFlag) {
		this.transferFlag = transferFlag;
	}

	public String getTransferUser() {
		return transferUser;
	}

	public void setTransferUser(String transferUser) {
		this.transferUser = transferUser;
	}

	public Date getTransferDate() {
		return transferDate;
	}

	public void setTransferDate(Date transferDate) {
		this.transferDate = transferDate;
	}

	public String getDeleteFlag() {
		return deleteFlag;
	}

	public void setDeleteFlag(String deleteFlag) {
		this.deleteFlag = deleteFlag;
	}

	public String getRemark() {
		return remark;
	}

	public void setRemark(String remark) {
		this.remark = remark;
	}

	public String getCreateUser() {
		return createUser;
	}

	public void setCreateUser(String createUser) {
		this.createUser = createUser;
	}

	public Date getCreateDate() {
		return createDate;
	}

	public void setCreateDate(Date createDate) {
		this.createDate = createDate;
	}

	public String getUpdateUser() {
		return updateUser;
	}

	public void setUpdateUser(String updateUser) {
		this.updateUser = updateUser;
	}

	public Date getUpdateDate() {
		return updateDate;
	}

	public void setUpdateDate(Date updateDate) {
		this.updateDate = updateDate;
	}
}

对应的XML文件回去数据的节点要和PO对象的属性一直 如:

<?xml version="1.0" encoding="UTF-8" ?>
<relativeRelationList>
  <relativeRelation>
     <id>no001</id>
     <initServerNo></initServerNo>
     <labId></labId>
     <relationCategory></relationCategory>
     <relationType></relationType>
     <relative1Id></relative1Id>
     <relative2Id></relative2Id>
     <seekingPersonId></seekingPersonId>
     <transferFlag></transferFlag>
     <transferUser></transferUser>
     <transferDate></transferDate>
     <deleteFlag></deleteFlag>
     <remark></remark>
     <createUser></createUser>
     <createDate></createDate>
     <updateUser></updateUser>
     <updateDate></updateDate>
  </relativeRelation>
<relativeRelation>
     <id>no002</id>
     <initServerNo></initServerNo>
     <labId></labId>
     <relationCategory></relationCategory>
     <relationType></relationType>
     <relative1Id></relative1Id>
     <relative2Id></relative2Id>
     <seekingPersonId></seekingPersonId>
     <transferFlag></transferFlag>
     <transferUser></transferUser>
     <transferDate></transferDate>
     <deleteFlag></deleteFlag>
     <remark></remark>
     <createUser></createUser>
     <createDate></createDate>
     <updateUser></updateUser>
     <updateDate></updateDate>
  </relativeRelation>
</relativeRelationList>


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值