将XML结点转换成JAVABEAN并存入数据库 - 编程入门网
作者 佚名技术
来源 NET编程
浏览
发布时间 2012-06-25
port org.apache.commons.beanutils.PropertyUtils;import org.dom4j.Attribute;import org.dom4j.Element;/*** 默认的BUSI NODE。 继承此类的BUSI NODE 需满足 所有不可分属性集=String类型的属性集* MyUtils类的代码欠奉**/public abstract class DefaultBusiNode implements BusiNode { public List getAtomicPropNames() { return MyUtils.getFieldNamesOfClass(this.getClass(), String.class); } public List getBusiNodePropNames() { return MyUtils.getFieldNamesOfClass(this.getClass(), BusiNode.class); } /* * 所有子元素的父元素。有时是本结点,有时是本结点下的元素。变态 */ public abstract Element getXmlElementParent(Element rootElement); /* * 类集子结点根元素的Iterator 。 假设一个pig有多个pighead, * 那结构可能为 pig--pighead,pighead,..., * 也可能为pig--pigheads--content,content.... * 必须让程序知道某个具体结点用的是哪种模式 * * 如果为空则返回一个空类集的Iterator ,不要返回NULL */ public abstract Iterator getCollectionElementIterator( Element xmlElementParent, String attName); /** * 解析XML属性 * * @param rootElement */ protected void parseAttributesFromXml(Element rootElement) { List xmlAttributes = this.getXmlAttributes(); for (int i = 0; i < this.getXmlAttributes().size(); i++) { String attName = (String) xmlAttributes.get(i); Attribute att = rootElement.attribute(attName); if (att != null) { try { PropertyUtils.setProperty(this, attName, att.getValue()); } catch (Exception e) { throw new RuntimeException(e); } } } } /** * 解析不可分的Element * * @param rootElement */ protected void parseAtomicElementFromXml(Element rootElement) { Element xmlElementParent = getXmlElementParent(rootElement); if (xmlElementParent == null) { return; } List xmlElements = this.getXmlAtomicElements(); for (int i = 0; i < xmlElements.size(); i++) { String attName = (String) xmlElements.get(i); Element elmt = xmlElementParent.element(attName); if (elmt != null) { try { PropertyUtils.setProperty(this, attName, elmt.getText()); } catch (Exception e) { throw new RuntimeException(e); } } } } /** * 解析BusiNode属性 * * @param rootElement */ protected void parseBusiNodeElementFromXml(Element rootElement) { Element xmlElementParent = getXmlElementParent(rootElement); if (xmlElementParent == null) { return; } // 再解析BusiNode属性 List busiNodePropNames = this.getBusiNodePropNames(); for (int i = 0; i < busiNodePropNames.size(); i++) { try { String attName = (String) busiNodePropNames.get(i); Element elmt = xmlElementParent |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于将XML结点转换成JAVABEAN并存入数据库 - 编程入门网的所有评论