`
jiangnan2112
  • 浏览: 122414 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

dom4j生成、解析xml

阅读更多
	/**  
     * 创建xml  
     * @param obj        泛型对象  
     * @param entityPropertys 泛型对象的List集合  
     * @param Encode     XML自定义编码类型 
     * @param XMLPath    XML文件的路径及文件名  
     * @date 2011-5-8
     * @author lujan
     */  
    public void createXmlDocument(T obj, List<T> entityPropertys, String Encode,   
            String XMLPath) {   
        try {   
            XMLWriter writer = null;// 声明写XML的对象    
            OutputFormat format = OutputFormat.createPrettyPrint();   
            format.setEncoding(Encode);	// 设置XML文件的编码格式 UTF-8  

            File file = new File(XMLPath);//获得文件     
  
            if (file.exists()) {   
                file.delete();   
            }   
            // 创建xml文件  
            Document document = DocumentHelper.createDocument();   
            String rootname = obj.getClass().getSimpleName();  //获得简单类名   
            Element root = document.addElement(rootname + "s");//添加根节点   
            Field[] properties = obj.getClass().getDeclaredFields();//获得实体类的所有属性   
            //赋值
            for (T  t : entityPropertys) {                                //递归实体   
                Element element = root.addElement(rootname);            //二级节点   
                for (int i = 0; i < properties.length; i++) {                      
                    //反射get方法       
                    Method meth = t.getClass().getMethod("get"+ properties[i].getName().substring(0, 1).toUpperCase() + properties[i].getName().substring(1));   
                    //为二级节点添加属性,属性值为对应属性的值   
                    element.addElement(properties[i].getName()).setText(meth.invoke(t).toString());   
                }   
            }   
            writer = new XMLWriter(new FileOutputStream(file), format);
            writer.write(document);   
            writer.close();   
        } catch (Exception e) {   
            System.out.println("XML文件写入失败"); 
            e.printStackTrace();
        }   
    }  


   /**  
     *   解析
     * @param XMLPath XML文件的路径(含名字)
     * @param t     泛型对象  
     * @return  List<T>
     * @date 2011-5-8
     * @author lujn
     */    
    public List<T> parserXml(String XMLPath, T t) {   
        List<T> list = new ArrayList<T>();   //创建list集合   
        try {   
            File f = new File(XMLPath);	//读取文件          
            SAXReader reader = new SAXReader();  
            Document doc = reader.read(f);		//dom4j读取  
            Element root = doc.getRootElement();//获得根节点   
            Element secondElement;				//二级节点   
            Field[] properties = t.getClass().getDeclaredFields();//获得实例的属性     

            Method setMethod = null;   
            for (Iterator i = root.elementIterator(t.getClass().getSimpleName()); i.hasNext();) {
            	//遍历t.getClass().getSimpleName()节点   
               secondElement = (Element) i.next();			//下一个二级节点   
               t = (T)t.getClass().newInstance();			//获得对象的新的实例   
               Object[] args = new Object[properties.length];
               for (int j = 0; j < properties.length; j++) {
            	   //遍历所有孙子节点   
                   //实例的set方法   
            	   setMethod = t.getClass().getMethod("set"+ properties[j].getName().substring(0, 1).toUpperCase()+ properties[j].getName().substring(1),properties[j].getType());
            	   setMethod.invoke(t,secondElement.elementText(properties[j].getName())) ;
                }   
                list.add(t);   
            }             
        } catch (Exception e) {   
            e.printStackTrace();   
        }   
        return list;   
    }      
    
2
3
分享到:
评论

相关推荐

    利用Dom4j生成XML和解析XML

    "Dom4j 生成 XML 和解析 XML" Dom4j 是一个 Java 库,用于处理 XML 文档。它提供了生成和解析 XML 文档的功能。在本文中,我们将学习如何使用 Dom4j 生成 XML 文档和解析 XML 文档。 生成 XML 文档 使用 Dom4j ...

    Dom4J生成XML的完整方法希望大家能用到

    Dom4J作为一款优秀的Java XML API,以其简洁、高效的特点,在生成、解析和操作XML文档方面表现突出。本文将深入探讨如何使用Dom4J库来创建XML文档,包括初始化文档、添加元素、设置属性、插入文本以及最终保存文档至...

    dom4j解析xml详解

    ### DOM4J解析XML详解 #### 一、DOM4J简介与特性 DOM4J是一个由dom4j.org开发的开源XML解析包,专为Java平台设计,它不仅支持DOM、SAX和JAXP标准,还巧妙地融入了Java集合框架,使其成为Java开发者在处理XML数据时...

    dom4j解析xml文件的压缩包

    5. **事件驱动解析(SAX)**:除了传统的DOM解析外,DOM4J还支持SAX解析器,这种解析方式适用于处理大型XML文件,因为它不需要一次性加载整个文档到内存。 6. **Namespace支持**:DOM4J提供了对XML命名空间的全面...

    dom4j 解析写入xml

    1、xml文档解析 2、 dom4j解析xml 3、实现xml文件解析 xml字符串解析 xml MAP键值对解析 4、实现xml写入与生成文件

    dom4j解析及生成 xml代码收集

    1. **DOM4J解析XML** - **Document对象**:DOM4J的核心是`Document`对象,它代表整个XML文档。解析XML文件后,DOM4J会构建一个`Document`对象树,你可以通过这个树来访问和操作XML的所有元素。 - **Element对象**...

    dom4J生成xml、解析xml、生成xml文件实例

    **dom4J生成和解析XML文件** DOM4J是一个强大的Java XML API,它不仅提供了DOM、SAX和JDOM等接口的实现,还提供了一种更简单、更灵活的方式来处理XML文档。这篇博客()可能详细介绍了如何使用DOM4J来生成和解析XML...

    Dom4j解析和生成XML文档

    DOM4J通过构建DOM树(Document Object Model)来解析XML。DOM模型是一种将XML文档转换为内存中对象树的表示方式。在DOM4J中,我们可以使用`DocumentBuilderFactory`和`DocumentBuilder`来创建`Document`对象,然后...

    java dom4j解析xml

    Java DOM4J解析XML是一种常见的处理XML文档的技术,它提供了灵活且高效的API,使得开发者能够方便地读取、写入、修改以及操作XML文件。DOM4J是Java中一个非常强大的XML处理库,它结合了DOM、SAX和JDOM的优点,同时也...

    dom4j解析xml,利用反射机制

    在这个项目中,我们利用DOM4J来解析XML文件,并通过Java的反射机制将解析出的信息存储到特定的类中。 首先,我们需要了解XML的基本概念。XML(Extensible Markup Language)是一种标记语言,常用于数据交换和结构化...

    dom4j解析xml

    **DOM4J解析XML** DOM4J是一个Java库,它为处理XML提供了强大的功能,包括读取、写入、修改和操作XML文档。这个库以其灵活性、效率和易用性而受到开发者的青睐。DOM4J是基于DOM(Document Object Model)的,但它...

    生成、解析xml的四种方式(dom,dom4j,sax,jdom)

    本文将详细介绍生成和解析XML的四种主要方法:DOM、DOM4J、SAX和JDOM。 1. DOM(Document Object Model) DOM是W3C组织推荐的一种解析XML的标准方式。它将XML文档视为一个树形结构,每个节点代表XML文档的一部分。...

    java dom4j中生成xml文件

    Java DOM4J库是用于处理XML文档的一个强大的开源框架,它提供了一种简单而灵活的方式来创建、解析和操作XML文件。DOM4J这个名字中的“DOM”代表文档对象模型(Document Object Model),这是一种标准的API,用于在...

    dom4j生成XML文档及解析

    在这个场景中,我们将深入理解如何使用DOM4J来生成XML文档以及如何解析XML内容。 首先,生成XML文档涉及以下几个主要步骤: 1. **创建Document对象**:`DocumentHelper.createDocument()`方法用于创建一个新的XML...

    DOM4J解析XML数据

    1. **解析XML文件**:使用DOM4J的`DocumentFactory`创建解析器,如`SAXReader`,然后读取XML文件,生成一个`Document`对象。 2. **访问XML结构**:通过`Document`对象,可以获取根元素(`Element`),进一步遍历...

    dom4j读取XML,解析XML简单示例

    在本示例中,我们将探讨如何利用DOM4J来读取和解析XML文件,以及如何通过`XMLTest.java`这个示例来理解DOM4J的基本用法。 首先,`XMLTest.java`是一个包含DOM4J操作XML的代码实例。通常,这样的程序会包含以下步骤...

    XML解析技术DOM4J解析

    DOM4J提供了对XML Schema的全面支持,允许开发者在解析XML文档时进行严格的模式验证,确保数据的准确性和一致性。这对于企业级应用尤为重要,因为它们往往需要处理大量的结构化数据。 **3. 基于事件的处理** 对于...

Global site tag (gtag.js) - Google Analytics