快速业务通道

将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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号