`

Dom4j读取写入xml

    博客分类:
  • JAVA
 
阅读更多
  /**
     * 按照日期生成上报的xml数据
     * @param date
     * @return
     */
    public String buildXmlDataPath(String date) {
        //document
        long docmentStartTime = System.currentTimeMillis();
        Document root = buildRootDocument(); //rootElement
        Element docElement = root.addElement(DOC);//docElement
        buildHeadElement(date, docElement);//headElement

        //reportInfo
        Element reportInfoElement = docElement.addElement(REPORTINFO);
        buildReport1Element(date,reportInfoElement);
        logger.info("【 Document生成完成】==>");

        //输出文件
        XMLWriter writer = null;
        String filePath = buildXmlFilePath(date);
        logger.info("【 Document输出文件路径】==>" + filePath);

        try{
            //输出带有格式的xml
            OutputFormat format = OutputFormat.createPrettyPrint();
            format.setEncoding(CHARSET_UTF_8);
            writer = new XMLWriter(new OutputStreamWriter(new FileOutputStream(filePath),CHARSET_UTF_8) ,format);
            writer.write(root);
            writer.flush();

            logger.info("【 Document文件写入完成】==>" + filePath);
        }catch(Exception e){
            logger.error(e.getMessage(),e);
        }finally {
            try {
                writer.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        logger.info("生成上报XmlFile ==> "+filePath+" costs-time: " + (System.currentTimeMillis() - docmentStartTime ));
        return filePath;
    }

 

    @NotNull
    private Document buildRootDocument() {
        Document root = DocumentHelper.createDocument();//建立document对象,用来操作xml文件
        root.addDocType("your_root_name [\n" +
                "<!ENTITY nbsp \" \">\n" +
                "<!ENTITY copy \"©\">\n" +
                "<!ENTITY reg \"®\">\n" +
                "<!ENTITY trade \"™\">\n" +
                "<!ENTITY mdash \"—\">\n" +
                "<!ENTITY ldquo \"“\">\n" +
                "<!ENTITY rdquo \"”\"> \n" +
                "<!ENTITY pound \"£\">\n" +
                "<!ENTITY yen \"¥\">\n" +
                "<!ENTITY euro \"€\">\n" +
                "]","","");
        return root;
    }

 

    
    private void createSubElement(Element e,String elementName,String text){
        Element reporterElement = e.addElement(elementName);
        if(StringUtils.isBlank(text)){
            reporterElement.setText("");
        }else{
            reporterElement.setText(text);
        }
    }

    private Element createSubElement(Element e,String elementName){
        return e.addElement(elementName);
    }

 

 

  /**
     * headElement
     * @param date
     * @param docElement
     */
    private void buildHeadElement(String date, Element docElement) {
        //Head
        Element headInfoElement = this.createSubElement(docElement,"head");
        Element tablePElement = this.createSubElement(headInfoElement,"table");
        tablePElement.addAttribute("name","DataHead");

        this.createSubElement(tablePElement,"datadate",date);
        this.createSubElement(tablePElement,"code", "1");
        this.createSubElement(tablePElement,"name", "测试");
     }

    /**
     * 标的列表
     * @param date
     * @param result
     * @param reportInfoElement
     */
    private void buildReport1Element(String date, Element reportInfoElement) {
        //report1 - 项目信息
        Element report1Element = this.createSubElement(reportInfoElement,"r1");
        report1Element.addAttribute("name","001");
        report1Element.addAttribute("type","DV");    
        Element recordElement = this.createSubElement(report1Element,"record");
        this.createSubElement(recordElement,"id","1111");
        this.createSubElement(recordElement,"date",date);
        }
    }

 

分享到:
评论

相关推荐

    dom4j以String的方式读取XML的内容,并给String的值赋值,写入XML中

    在这个场景中,我们关注的是如何使用DOM4J以String的形式读取XML内容,然后将String的值赋给XML中的特定节点,最后将更新后的内容写回XML文件。下面我们将详细探讨这一过程。 1. **解析XML到String** 要将XML文件...

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

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

    DOM4J读取XML

    本文将详细介绍如何使用DOM4J来读取XML文件中的信息。 ### DOM4J读取XML详解 #### 初始化资源路径 代码片段中的`URL url = this.getClass().getClassLoader().getResource("/")`这一行是获取类加载器的根目录路径...

    详细介绍使用Dom4j读取xml文件的方法

    Dom4j便是一款功能强大且易于使用的Java库,它提供了非常简洁的API来读取、写入以及修改XML文档。本文将详细介绍如何使用Dom4j读取XML文件,并通过一个具体示例来进行深入探讨。 #### 二、环境搭建与依赖引入 在...

    dom4j读写xml文档实例

    要使用DOM4J读取XML文档,首先需要创建一个`SAXReader`对象,然后调用`read`方法传入XML文件路径。这将返回一个`Document`对象,我们可以从中获取所有元素信息。 ```java File file = new File("path_to_xml_file")...

    利用dom4j--读取xml文件

    在本文中,我们将详细探讨如何利用DOM4J库来读取XML文件。 1. **安装DOM4J** 要使用DOM4J,首先需要将其添加到你的项目依赖中。如果你使用的是Maven,可以在`pom.xml`文件中添加以下依赖: ```xml &lt;groupId&gt;...

    Java用DOM4J读取XML

    ### Java使用DOM4J读取XML知识点解析 #### 一、概述 在Java开发中,处理XML文件是一项常见的任务。DOM4J是一个简单且功能强大的Java库,用于处理XML文档。它提供了类似于DOM的API,但更为轻量级且易于使用。本篇将...

    dom读取xml与写入xml

    总结起来,DOM提供了一种强大的机制,使得开发者可以方便地读取、修改和写入XML文档。通过源码分析,我们可以更深入地理解其工作原理,这对开发和调试XML处理代码至关重要。在实际应用中,需要注意DOM解析整个XML...

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

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

    DOM4J格式化XML

    DOM4J是一个非常流行的Java XML API,它提供了丰富的功能,包括读取、写入、修改以及操作XML文档。在XML处理中,格式化是一个重要的环节,它可以使得XML代码更加整洁、易读,便于理解和维护。 【描述】虽然描述部分...

    java中dom4j读写XML

    **DOM4J的写入XML:** 1. **创建Element**:使用`Element.create.Element(String name)`创建新元素。 2. **添加子元素和属性**:使用`addElement()`添加子元素,`addAttribute()`添加属性。 3. **设置文本内容**:...

    dom4j解析xml

    ### DOM4J解析XML知识点详解 #### 一、DOM4J简介 DOM4J是一个Java库,用于处理XML文档。它的设计目标是为了提供一个简单、易于使用的API来处理XML文件,同时保持性能上的优势。与Java标准库中的DOM实现相比,DOM4J...

    使用DOM4J对XML文件操作-添加、修改、删除、获取元素节点

    DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活且高效的API,使得XML的解析、创建、修改和查询变得简单。在本教程中,我们将深入探讨如何使用DOM4J来执行基本的XML操作,包括添加元素、修改元素、删除...

    DOM4J读取XML文件

    在博客“DOM4J读取XML文件”中,作者可能会详细讲解上述概念,并提供示例代码来展示如何使用DOM4J来读取、解析、修改和写入XML文件。如果你手头有一个名为“Dom4jTest”的压缩包文件,里面可能包含了示例代码或测试...

    dom4j 读取带有命名空间的xml文件

    下面是一个使用DOM4J读取带有命名空间的XML文件的基本步骤: 1. **导入必要的DOM4J库**: 在项目中引入DOM4J库,通常通过Maven或Gradle等构建工具添加依赖。 2. **解析XML文件**: 使用`DocumentFactory`创建一...

    dom4j的jar包(读取xml)

    DOM4J通过其灵活的API,使开发者可以轻松地读取、写入和操作XML文件。例如,你可以使用DOM4J来获取XML文档的根元素,遍历元素树,检索或修改元素、属性、文本内容,甚至执行XPath查询。 `dom4j-1.6.1.jar`是DOM4J的...

    dom4j读取xml

    **DOM4J解析XML的基本概念** DOM4J是Java中一个功能强大且灵活的XML处理库,它提供了全面的XML解决方案,包括...在实际开发中,DOM4J不仅能够读取XML,还能帮助我们构建、修改XML文档,是Java处理XML的重要工具之一。

    通过Dom4j创建和读取xml文件下载

    本教程将详细讲解如何利用DOM4J进行XML文件的创建和读取。首先,我们需要了解DOM4J的核心概念,如Element、Attribute、Document等。 1. **DOM4J基本概念**: - **Document**: XML文档的根节点,代表整个XML文件。 ...

    xmldom4j解析

    DOM4J是Java中一个非常强大的XML处理库,它提供了丰富的API来操作XML文档,如读取、写入、修改以及查询XML。本教程将深入探讨XML DOM4J解析的相关知识点。 一、DOM4J基本概念 DOM4J是一种灵活的Java API,其设计...

    dom4j读取XML简单使用

    这篇博客将引导我们了解如何利用DOM4J来读取XML文件,这是Java开发中常见的任务之一。 **DOM4J的基本概念** DOM4J采用Document Object Model (DOM)接口,但它通过添加额外的灵活性和性能优化,超越了标准DOM。DOM4J...

Global site tag (gtag.js) - Google Analytics