用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>
分享到:
- 2008-02-29 17:13
- 浏览 748
- 评论(2)
- 论坛回复 / 浏览 (2 / 2405)
- 查看更多
相关推荐
dom4j是一个Java的XML API,是jdom的升级品,用来读写XML文件的。dom4j是一个十分优秀的JavaXML API,具有性能优异、功能强大和极其易使用的特点,它的性能超过sun公司官方的dom技术,同时它也是一个开放源代码的...
此代码通过dom4j提供的分步读取大文件的接口实现,可完成对大文件的读取,不至于程序报内存不足等错误。
DOM 为创建、处理和操纵 XML 文档提供了灵活和有效的方法,但使用起来可能比较困难并且可能导致不稳定和错误的代码。作者 Parand Tony Daruger 提供了一套 Java 用法模式和函数库,使 DOM 变得健壮且易于使用。
使用dom4j解析含有这样dtd的xml文件时,它会从网络找到这个文件对xml文件进行校验。但是如果电脑断开网络的话就会出现错误说找不到dtd文件并解析失败。所以请使用以下方法...
java操纵xml文件的读写,并根据xml生成树型菜单
依赖包: 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-...
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(一个日志系统的...
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 自动将DOM、DOM4J、JDOM和XOM转换成DOM树,前面这几种类型都仅仅返回Document,Element,Node.DWR会自动将这些转换成浏览器DOM对象.通常在启动JDOM Converter时会有一个提示信息,除非你想采用JDOMconverter否则可以...
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(一个日志系统的...
ava校验XML是件很扯淡的事情,... 下面不扯这些废话了,我用DOM4j结合javaxml api使用XSD来校验一个xml有效性,下面这个例子虽然和蹩脚,但是也费了一番功夫,放出来大家研究吧,有更好的实现也希望能和我一同分享。
22. //如果不用此包会抛出:java.lang.NoClassDefFoundError: org/dom4j/DocumentException 23. dom4j-1.6.1.jar 24. 25. //dwr必须 26. dwr.jar 27. 28. 29. //不用此包,在启动时招聘:java.lang....
通过DOM4J开源组件读取XML配置文件 根据配置文件执行抓取任务 对抓取到的内容根据定义进行解析与处理 目前缺陷功能描述 抓取内容如果有分页,则无法获取下一分页 目标页面可能包含有想抓取的信息,但...
Xerces是一个开放源代码的XML语法分析器。 Xerces-C++ 的前身是 IBM 的...其特征及功能包括:兼容XML 1.0,能记录最近的DOM和SAX规范,可编程产生和验证XML,具有可内插的目录,具有验证和编码器,进行可定制错误处理。
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和...
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和...
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和...
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和...
实例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 ...
例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。 当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望...