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

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-2.1.3.jar

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

    dom4j读取大文件的缓存方式

    此代码通过dom4j提供的分步读取大文件的接口实现,可完成对大文件的读取,不至于程序报内存不足等错误。

    DOM解析 DOM4j解析

    DOM 为创建、处理和操纵 XML 文档提供了灵活和有效的方法,但使用起来可能比较困难并且可能导致不稳定和错误的代码。作者 Parand Tony Daruger 提供了一套 Java 用法模式和函数库,使 DOM 变得健壮且易于使用。

    DOM4J解析XML时DTD路径问题

    使用dom4j解析含有这样dtd的xml文件时,它会从网络找到这个文件对xml文件进行校验。但是如果电脑断开网络的话就会出现错误说找不到dtd文件并解析失败。所以请使用以下方法...

    java操纵xml文件的读写,并根据xml生成树型菜单

    java操纵xml文件的读写,并根据xml生成树型菜单

    简单易用通用(xls,xlsx)导入导出操作

    依赖包: commons-beanutils.jar、commons-io-2.2.jar、commons-lang-2.6.jar、dom4j-1.6.1.jar、log4j-1.2.16.jar、log4j-over-slf4j-1.6.1.jar、poi-3.10.1-20140818.jar、poi-ooxml-3.10.1-20140818.jar、poi-...

    SSH 框架所需JAR包

    4.dom4j-1.6.1.jar(对dom4j的封装,是解析xml文件的) 5.javassist-3.9.0.GA.jar(一个开源的分析、编辑和创建Java字节码的类库) 6.jta-1.1.jar(hibernate对事务的处理) 7.slf4j-api-1.6.4.jar(一个日志系统的...

    SSH 项目 整合jar包

    4.dom4j-1.6.1.jar(对dom4j的封装,是解析xml文件的) 5.javassist-3.9.0.GA.jar(一个开源的分析、编辑和创建Java字节码的类库) 6.jta-1.1.jar(hibernate对事务的处理) 7.slf4j-api-1.6.4.jar(一个日志系统的...

    DWR.xml配置文件说明书(含源码)

    DWR 自动将DOM、DOM4J、JDOM和XOM转换成DOM树,前面这几种类型都仅仅返回Document,Element,Node.DWR会自动将这些转换成浏览器DOM对象.通常在启动JDOM Converter时会有一个提示信息,除非你想采用JDOMconverter否则可以...

    web项目常用jar包及说明.zip

    4.dom4j-1.6.1.jar(对dom4j的封装,是解析xml文件的) 5.javassist-3.9.0.GA.jar(一个开源的分析、编辑和创建Java字节码的类库) 6.jta-1.1.jar(hibernate对事务的处理) 7.slf4j-api-1.6.4.jar(一个日志系统的...

    Java通过XML Schema校验XML

    ava校验XML是件很扯淡的事情,... 下面不扯这些废话了,我用DOM4j结合javaxml api使用XSD来校验一个xml有效性,下面这个例子虽然和蹩脚,但是也费了一番功夫,放出来大家研究吧,有更好的实现也希望能和我一同分享。

    用户注册和登录是每个系统的必须存在的一部分,基于Dwr+Struts2+Spring+Hibernate写了一个用户登录注册系统

    22. //如果不用此包会抛出:java.lang.NoClassDefFoundError: org/dom4j/DocumentException 23. dom4j-1.6.1.jar 24. 25. //dwr必须 26. dwr.jar 27. 28. 29. //不用此包,在启动时招聘:java.lang....

    百度贴吧签到网站源码Java-playfish:playfish基于JAVA技术的网页内容智能抓取

     通过DOM4J开源组件读取XML配置文件  根据配置文件执行抓取任务  对抓取到的内容根据定义进行解析与处理 目前缺陷功能描述  抓取内容如果有分页,则无法获取下一分页  目标页面可能包含有想抓取的信息,但...

    xerces-c++-3.1.3

    Xerces是一个开放源代码的XML语法分析器。 Xerces-C++ 的前身是 IBM 的...其特征及功能包括:兼容XML 1.0,能记录最近的DOM和SAX规范,可编程产生和验证XML,具有可内插的目录,具有验证和编码器,进行可定制错误处理。

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    3.5.1 下载并配置dom4j 88 3.5.2 dom4j api介绍 88 3.5.3 第一个实例 92 3.5.4 第二个实例 94 3.6 解析名称空间 96 3.6.1 dom和名称空间 96 3.6.2 sax和名称空间 97 3.6.3 jdom和名称空间 98 3.6.4 dom4j和...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    3.5.1 下载并配置dom4j 88 3.5.2 dom4j api介绍 88 3.5.3 第一个实例 92 3.5.4 第二个实例 94 3.6 解析名称空间 96 3.6.1 dom和名称空间 96 3.6.2 sax和名称空间 97 3.6.3 jdom和名称空间 98 3.6.4 dom4j和...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    3.5.1 下载并配置dom4j 88 3.5.2 dom4j api介绍 88 3.5.3 第一个实例 92 3.5.4 第二个实例 94 3.6 解析名称空间 96 3.6.1 dom和名称空间 96 3.6.2 sax和名称空间 97 3.6.3 jdom和名称空间 98 3.6.4 dom4j和...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    3.5.1 下载并配置dom4j 88 3.5.2 dom4j api介绍 88 3.5.3 第一个实例 92 3.5.4 第二个实例 94 3.6 解析名称空间 96 3.6.1 dom和名称空间 96 3.6.2 sax和名称空间 97 3.6.3 jdom和名称空间 98 3.6.4 dom4j和...

    JAVA 范例大全 光盘 资源

    实例105 DOM4j解析XML文件 278 实例106 JDOM解析XML文件 285 实例107 DOM解析XML文件 292 实例108 SAX解析XML文件 297 实例109 W3C解析XML文件 301 第13章 Java网络编程 306 实例110 获取IP地址和域名 306 ...

    超级有影响力霸气的Java面试题大全文档

    例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。 当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望...

Global site tag (gtag.js) - Google Analytics