`
yuguichong
  • 浏览: 7601 次
文章分类
社区版块
存档分类
最新评论

dom4j写文件出错

XML 
阅读更多
 用dom4j写xml文件出错
public class Log4mw {

    public static final String FILE_NAME = "ESEECONMW_DATA";

    public void createXML(String time, String str, String types) {

        try {
            
            File tmpFile = new File(FILE_NAME);
            //创建目录
            if (!tmpFile.exists()) {
                tmpFile.mkdir();
            }
            File file = new File(FILE_NAME + "/ESEECONMW_Log_" + getDate()
                    + ".xml");
            Element root = null;

            //当天的日志文件不存在
            if (!file.exists()) {

                Document doc = DocumentHelper.createDocument();
                root = doc.addElement("ESEECONMW");
            }
            //文件存在
            else {

                SAXReader reader = new SAXReader();
                Document doc = reader.read(file);
                root = doc.getRootElement();
            }

            Element log = root.addElement("Log");
            //log.addAttribute("time", time);
            Element now = log.addElement("Time");
            now.addText(time);
            
            Element string = log.addElement("String");
            string.addText(str);

            Element type = log.addElement("Type");
            type.addText(types);

            //通过 OutputFormat 来设置XML文档输出格式
            OutputFormat format = OutputFormat.createPrettyPrint();
            format.setEncoding("UTF-8");
            format.setSuppressDeclaration(true);
            format.setIndent(true);
            format.setIndent("   ");
            format.setNewlines(true);

            //通过 XMLWriter 创建XML文档(写)
            XMLWriter xmlWriter = new XMLWriter(new FileWriter(file), format);
            xmlWriter.processingInstruction("xml version=\"1.0\"",
                    "encoding=\"UTF-8\"");
            xmlWriter.write(root);
            xmlWriter.close();
        }
        catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        catch (IOException e) {
            e.printStackTrace();
        }
        catch (SAXException e) {
            e.printStackTrace();
        }
        catch (DocumentException e) {
            e.printStackTrace();
        }
    }

    /**
     * 获取当前日期
     * 
     * @return String
     */
    private String getDate() {

        Calendar cal = Calendar.getInstance();
        String today = cal.get(Calendar.YEAR) + "-"
                + (cal.get(Calendar.MONTH) + 1) + "-"
                + cal.get(Calendar.DAY_OF_MONTH);
        return today;
    }
xml文件的结果,会多出一个 </ESEECONMW> ,为什么? 
<?xml version="1.0" encoding="UTF-8"?>

<ESEECONMW>
   <Log>
      <Time>17:0:36</Time>
      <String>000x</String>
      <Type>null-COM5(Send To Reader)</Type>
   </Log>
</ESEECONMW>
</ESEECONMW>
 
 
分享到:
评论
2 楼 yuguichong 2008-03-03  
kenria: 
日志文件不存在时才加根ESEECONMW呀,以后不用加根的,你有没有试过,我试了没有用,这样根都变了
1 楼 kenria 2008-03-01  
xml文件的根设成ESEECONMW了
root = doc.addElement("ESEECONMW");
改为root = doc.addElement("Log");即可

相关推荐

    DOM4J jar包 xml解析 所有的dom4j-1.6.1 dom4j-2.0.2 dom4j-2.1.1包 导入直接使用

    DOM4J的版本迭代带来了许多改进和新特性,例如从1.6.1到2.1.1的过程中,可能包含了性能优化、API调整、错误修复和新的XML标准支持等。每个版本更新都致力于提高稳定性和易用性,满足开发者不断变化的需求。 在项目...

    dom4j dom4j1.6 dom4j最新版

    DOM4J-1.6.1的更新可能包括性能优化、新特性的添加、错误修复和对新XML标准的支持。其中,`dom4j-1.6.1.jar`是运行时库,包含了DOM4J的所有类和方法;`dom4j-1.6.1-sources.jar`包含了源代码,方便查看和学习;`dom4...

    org.dom4j.jar

    当我们遇到“java.lang.ClassNotFoundException: org.dom4j.DocumentException”的错误提示时,这通常意味着系统中缺少了DOM4j库,只需将“org.dom4j.jar”添加到项目类路径中即可解决此问题。 DOM4J是基于DOM和SAX...

    XSD使用dom4j校验XML

    本篇文章将深入探讨如何利用DOM4J库来实现XSD对XML文档的校验,以确保XML文件符合预先设定的数据结构规则。 首先,理解XSD的作用至关重要。XSD文件定义了XML文档的元素、属性、数据类型以及它们之间的关系。通过...

    dom4j-1.6.1.jar及其2.0.2、2.1.1三个版本的jar包

    在您提供的文件中,我们看到了DOM4J的三个不同版本:1.6.1、2.0.2和2.1.1。这些版本间的差异主要体现在性能优化、新功能的添加以及对错误和兼容性的修复上。下面我们将深入探讨DOM4J的核心概念和每个版本的一些关键...

    dom4j-2.1.3.jar

    dom4j是一个Java的XML API,是jdom的升级品,用来读写XML文件的。dom4j是一个十分优秀的JavaXML API,具有性能优异、功能强大和极其易使用的特点,它的性能超过sun公司官方的dom技术,同时它也是一个开放源代码的...

    dom4j 2.1.0

    通过使用泛型,DOM4J的API现在能够提供更强的类型检查和推断,减少了运行时类型转换的需要,降低了潜在的错误。这使得开发者在编写代码时能更好地了解方法返回值和参数类型,提高了代码的可读性和可靠性。 DOM4J-...

    dom4j.jar包新版

    描述中提到的"POI新版所依赖的jar包,确实会导致报错"可能是指在更新POI库时,如果没有同步更新DOM4J库,可能会出现兼容性问题导致程序出错。POI是Apache的一个开源项目,主要用于读写Microsoft Office格式的文件,如...

    dom4j-2.1.0.jar dom4j-2.1.0-javadoc.jar

    通过阅读这份文档,开发者可以快速掌握DOM4J的用法,避免不必要的错误和提高开发效率。 总的来说,DOM4J是一个功能强大且易用的XML处理库,广泛应用于Java项目中,无论是简单的XML解析还是复杂的XML操作,都能提供...

    dom4j下sax解析xml

    总结起来,dom4j库提供了DOM和SAX两种XML解析方式,而SAX解析在处理大文件时具有性能优势。通过注册事件处理器,开发者可以在解析过程中动态响应XML结构,实现灵活的数据处理。在实际工作中,选择合适的解析方法取决...

    dom4j-2.1.0

    Javadoc文件则包含了DOM4J所有类和方法的详细说明,是编写基于DOM4J代码时的重要参考。 ### 应用场景 DOM4J广泛应用于Java项目中,特别是在需要处理XML配置文件、数据交换、Web服务响应等场合。例如,在Spring框架...

    dom4j源代码

    5. **Schema验证**:探究DOM4J如何根据XML Schema进行文档验证,以及错误处理机制。 通过上述分析,我们可以看出DOM4J在XML处理领域的重要地位,其源代码是理解XML处理技术的宝贵资源,对提升Java开发者处理XML的...

    dom4j-2.1.1 jar和source.jar

    这个版本号表示这是DOM4J的2.1.1版,通常包含了一些错误修复、性能优化或新功能的添加。 描述中提到的"source.jar",即"dom4j-2.1.1-sources.jar",是DOM4J的源代码包,包含了DOM4J库的所有源代码。这对于开发者来...

    dom4j-1.6.1.jar和xmlbeans-2.6.0.jar

    2. **SAX和DOM**: 除了DOM,DOM4J还支持SAX解析器,允许在内存有限的情况下处理大型XML文件。 3. **XPath**: 支持XPath表达式,使得可以方便地定位和提取XML文档中的特定节点。 4. **事件模型**: 提供了基于事件的...

    log4j和dom4j插件

    例如,一个Java应用可能使用`log4j`记录用户登录、操作日志,同时利用`dom4j`解析XML配置文件以动态配置应用的行为。 在提供的压缩包中,`lo4j_jar包`包含了`log4j`的库文件,开发者可以直接引入到项目中使用。而`...

    DOM4J从基础到精通

    #### 四、使用DOM4J修改XML文件 修改XML文件包括增加、删除或更新元素及属性。使用DOM4J进行这些操作非常直观。 ```java // 更新属性值 root.addAttribute("新属性名", "新属性值"); // 删除元素 root.remove...

    DOM4J解析XML时DTD路径问题

    当XML文件包含DTD(Document Type Definition)声明时,DOM4J默认会尝试从指定的URL加载DTD文件来进行验证。这通常是为了确保XML文件符合预定的结构和规则。然而,在某些情况下,如离线环境或者网络连接不稳定的情况...

    (完整压缩)dom4j-1.6.1

    2. **配置文件管理**:许多Java应用程序用XML作为配置文件,DOM4J简化了读写这些配置的过程。 3. **数据绑定**:结合XSLT(可扩展样式表语言转换),DOM4J可以将XML数据转换成其他格式,如HTML或者PDF。 4. **框架...

    xpath补丁包+dom4j2.0.3.zip

    3. `dom4j-2.0.3.jar`:这是DOM4J库的核心运行时文件,包含了所有需要的类和资源,用于在项目中集成和使用DOM4J。 Jaxen是一个独立的XPath引擎,它可以在多种XML处理器(如DOM4J、DOM、JDOM等)上运行。Jaxen-1.1.1...

    基于DOM4j和POI实现的XML文件转换为XLS(即标准EXCEL)的JAVA程序

    本项目就是关于如何使用DOM4j解析XML文件,并利用Apache POI将其转换为标准的XLS(Excel)文件。 首先,DOM4j是Java中一个灵活且功能强大的XML处理库,它提供了完整的API来读取、操作和写入XML文档。通过DOM4j,...

Global site tag (gtag.js) - Google Analytics