`

创建xml

 
阅读更多

private String writeXML(String url) {
        
        DocumentBuilderFactory dbfactory = DocumentBuilderFactory.newInstance();         //创建DocumentBuilderFactory工厂实例。    
        DocumentBuilder dBuilder;                    
        try {
            dBuilder = dbfactory.newDocumentBuilder();    //通过文档创建工厂创建文档创建器,
            Document doc = dBuilder.newDocument();    //并通过文档创建器创建一个新的文档对象。
            Element root = doc.createElement("records");//建立根节点
            //将根结点添加到文档中
            doc.appendChild(root);
            
            //设置配置数据最后的更新时间
                Element sendTimeEmt = doc.createElement("xxx");
                sendTimeEmt.appendChild(doc.createTextNode("xxx"));
                root.appendChild(sendTimeEmt);
            
            //设置xml文件的下发节点ip
            Element nodeIPEmt = doc.createElement("xxx");
            nodeIPEmt.appendChild(doc.createTextNode("xxx"));
            root.appendChild(nodeIPEmt);
            
            //遍历当前数据表中的记录,生成xml文件
            if(dataList != null && dataList.size()>0) {
                for(Object obj:dataList) {
                    Element recordEmt = doc.createElement("record");
                    Class c = null;
                    //根据POJO类型,得到对应的key 与value
                    if(tableName != null && tableName.equals("demo")){
                         c = demo.class;
                    }
                    
                    if(colum != null && colum.size() > 0) {
                        for(String key : colum){
                            
                            Method getterMethod = null;
                            //得到对象的get方法
                            String firstChar = key.substring(0,1);
                            firstChar = firstChar.toUpperCase();
                            String otherChar = key.substring(1);
                            String methodKey = "get"+firstChar+otherChar;
                            try {
                                getterMethod = c.getDeclaredMethod(methodKey);
                            } catch (SecurityException e1) {
                                e1.printStackTrace();
                            } catch (NoSuchMethodException e1) {
                                e1.printStackTrace();
                            }
                            String value = "";
                            try {
                                if(getterMethod!=null){
                                    Object objectValue = getterMethod.invoke(obj);
                                    if(objectValue != null)
                                        value = objectValue.toString();
                                }
                            } catch (IllegalArgumentException e) {
                                e.printStackTrace();
                            } catch (IllegalAccessException e) {
                                e.printStackTrace();
                            } catch (InvocationTargetException e) {
                                e.printStackTrace();
                            }
                            Element keyEmt = doc.createElement(key);
                            keyEmt.appendChild(doc.createTextNode(value));
                            recordEmt.appendChild(keyEmt);
                            
                        }
                    }
                    
                    root.appendChild(recordEmt);
                }                
            }
            docToXML(doc, url);
            
        } catch (ParserConfigurationException e) {
            e.printStackTrace();
        }
        return url;
    }
    
    /**
     * 将DOM树对象转换为可以写入本地的XML文档对象
     * @param doc 需要转换的DOM对象
     * @param filePath 转换后的XML文档存放的路径
     * @return 写入成功返回true,转换过程中出现异常返回false
     */
    private void docToXML(Document doc,String filePath){
        
        //把XML文档输出到指定的文件
        try {
            TransformerFactory tFactory = TransformerFactory.newInstance();//创建转换器工厂实例
            Transformer tFormer= tFactory.newTransformer();//创建转换器
            DOMSource dSource = new DOMSource(doc);//创建DOM输入源
            StreamResult sResult = new StreamResult(new File(filePath));// 创建输出流
            
            //设置写入XML文件的编码、空白符和版本
            tFormer.setOutputProperty(OutputKeys.ENCODING,"UTF-8");
            tFormer.setOutputProperty(OutputKeys.INDENT, "yes");
            tFormer.setOutputProperty(OutputKeys.VERSION, "1.0");
            
            tFormer.transform(dSource, sResult); // 将内存中的XML文档转换输出到本地
            
        } catch (TransformerConfigurationException e) {
            e.printStackTrace();
        }catch (TransformerException e) {
            e.printStackTrace();
        }
    }
   

分享到:
评论

相关推荐

    java 通过模板生成 xml,发送报文

    总结起来,Java通过模板生成XML并发送报文涉及XML文档对象的创建、元素的构建、模板引擎的应用以及HTTP请求的发送。理解这些概念并熟练掌握相关API,能帮助开发者在实际工作中高效地处理XML数据的生成与传输。

    根据xml schema生成xml

    这篇博客文章“根据XML Schema生成XML”探讨了如何使用XML Schema来创建符合规范的XML文档。 首先,理解XML Schema的基本元素是关键。XML Schema定义了一系列的元素(element)、属性(attribute)和数据类型(data...

    根据XML模版自动生成

    本话题主要关注如何根据XML模板自动生成XML文件,这通常涉及到数据库操作、数据处理以及XML文件的构建过程。下面我们将深入探讨这个主题。 首先,XML模板是一个预定义的结构,它包含了所需生成XML文件的基本框架,...

    生成XML文件ABAP程序

    根据提供的ABAP程序片段,我们可以总结出以下关于生成XML文件的相关知识点: ### 1. ABAP中的IXML库介绍 ABAP(Advanced Business Application Programming)是SAP系统中广泛使用的一种编程语言。在处理XML数据时...

    C# 生成xml文件,编码为utf-8方法

    首先,需要创建一个 MemoryStream 对象,用于存储生成的 XML 数据。然后,创建一个 StreamWriter 对象,指定其编码为 UTF-8,并将其关联到 MemoryStream 对象上。接着,使用 XmlSerializer 对象将对象 serialize 到 ...

    c# 循环生成XML方法

    在C#中,生成XML文档的第一步是创建一个`XmlDocument`对象。这个对象充当了整个XML文档的容器,所有的节点(包括元素、属性、注释等)都将被添加到这个容器中。例如,在给定的代码片段中,首先实例化了一个`Xml...

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

    ### Dom4J生成XML的完整方法详解 在Java开发领域,处理XML文档是常见的需求之一。Dom4J作为一款优秀的Java XML API,以其简洁、高效的特点,在生成、解析和操作XML文档方面表现突出。本文将深入探讨如何使用Dom4J库...

    LABVIEW创建XML格式文件

    LABVIEW创建XML格式文件

    在XSD指导下创建XML,不是生成示例xml

    4. **生成XML**:当所有输入都通过验证后,编辑器将这些数据转化为符合XSD结构的XML元素和属性,形成完整的XML文档。 除了IETM系统,这种根据XSD创建XML的方法也广泛应用于其他场景,如数据交换、Web服务、配置文件...

    dom动态生成使用XML DOM生成XML.pdf

    这些选项对于直接生成XML文档到浏览器时特别有用。 - **asynch**:设置为False以防止异步下载。 - **PreserveWhiteSpace**:设置为True以保留空白字符。 - **ResolveExternals**:设置为False以避免解析外部实体、...

    从sqlserver生成XML

    SQL Server作为一款广泛应用的关系型数据库管理系统,提供了丰富的功能,其中之一就是能够生成XML格式的数据,这在数据迁移、报表生成、Web服务等场景中非常实用。本篇文章将详细介绍如何在VB(Visual Basic)环境中...

    动态生成XML文件

    标题中的“动态生成XML文件”指的是在程序运行过程中,根据特定的数据或逻辑生成XML文档的过程。这通常用于数据交换、配置文件存储或者报告生成等场景。在这个案例中,描述指出生成XML是基于数据库中表的结构,这...

    C#动态生成XML文件

    本篇文章将详细探讨如何在C#中动态生成XML文件,包括创建XML元素、添加属性、设置参数等关键步骤。 首先,我们需要引入System.Xml命名空间,它是C#处理XML的基础。在代码开头加入以下语句: ```csharp using ...

    使用c++生成xml文件

    本篇文章将详细介绍如何使用C++生成XML文件,主要参考的代码示例来自压缩包中的`generate_xml.cpp`。 首先,我们引入一个常用的C++ XML库——TinyXML。TinyXML是一个轻量级的库,它提供了解析和操作XML文件的功能。...

    freemarker生成xml示例

    这个示例是关于如何使用Freemarker来生成XML文件,对于初学者来说,理解这个过程有助于掌握Freemarker的基本用法和XML的生成技巧。 在Java中,Freemarker与数据模型结合,通过模板文件生成输出。对于XML生成,首先...

    C# 方式生成xml格式字符串

    生成xml格式字符串、序列化XML 对象=》XML文本、反序列化 XML文本=》对象 等方法,对象和xml之间的相互转换、datatable方式转换为xml文本的工具类方法 C#语言

    通过JAVA生成XML

    本篇主要介绍如何通过Java编程语言生成XML文档,结合“XML项目开发中用到的”这一标签,我们将深入探讨Java API中的DOM、SAX和StAX三种解析器,以及它们在创建XML文件时的应用。 1. DOM(Document Object Model)...

    java文件生成xml文档

    在Java编程中,生成XML文档是一项常见的任务,特别是在构建配置文件、数据交换或者保存结构化信息时。XML(eXtensible Markup Language)是一种标记语言,它的结构清晰、可读性强,非常适合用来存储和传输数据。...

    Java生成xml(jdom)

    Java生成XML是Java编程中常见的任务,特别是在处理数据序列化或与外部系统交换结构化信息时。本教程将深入探讨如何使用JDOM库在Java中生成XML文档,并且重点介绍如何处理中文字符。 JDOM(Java Document Object ...

Global site tag (gtag.js) - Google Analytics