用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
- 浏览 788
- 评论(2)
- 论坛回复 / 浏览 (2 / 2422)
- 查看更多
相关推荐
DOM4J的版本迭代带来了许多改进和新特性,例如从1.6.1到2.1.1的过程中,可能包含了性能优化、API调整、错误修复和新的XML标准支持等。每个版本更新都致力于提高稳定性和易用性,满足开发者不断变化的需求。 在项目...
DOM4J-1.6.1的更新可能包括性能优化、新特性的添加、错误修复和对新XML标准的支持。其中,`dom4j-1.6.1.jar`是运行时库,包含了DOM4J的所有类和方法;`dom4j-1.6.1-sources.jar`包含了源代码,方便查看和学习;`dom4...
当我们遇到“java.lang.ClassNotFoundException: org.dom4j.DocumentException”的错误提示时,这通常意味着系统中缺少了DOM4j库,只需将“org.dom4j.jar”添加到项目类路径中即可解决此问题。 DOM4J是基于DOM和SAX...
本篇文章将深入探讨如何利用DOM4J库来实现XSD对XML文档的校验,以确保XML文件符合预先设定的数据结构规则。 首先,理解XSD的作用至关重要。XSD文件定义了XML文档的元素、属性、数据类型以及它们之间的关系。通过...
在您提供的文件中,我们看到了DOM4J的三个不同版本:1.6.1、2.0.2和2.1.1。这些版本间的差异主要体现在性能优化、新功能的添加以及对错误和兼容性的修复上。下面我们将深入探讨DOM4J的核心概念和每个版本的一些关键...
dom4j是一个Java的XML API,是jdom的升级品,用来读写XML文件的。dom4j是一个十分优秀的JavaXML API,具有性能优异、功能强大和极其易使用的特点,它的性能超过sun公司官方的dom技术,同时它也是一个开放源代码的...
通过使用泛型,DOM4J的API现在能够提供更强的类型检查和推断,减少了运行时类型转换的需要,降低了潜在的错误。这使得开发者在编写代码时能更好地了解方法返回值和参数类型,提高了代码的可读性和可靠性。 DOM4J-...
描述中提到的"POI新版所依赖的jar包,确实会导致报错"可能是指在更新POI库时,如果没有同步更新DOM4J库,可能会出现兼容性问题导致程序出错。POI是Apache的一个开源项目,主要用于读写Microsoft Office格式的文件,如...
通过阅读这份文档,开发者可以快速掌握DOM4J的用法,避免不必要的错误和提高开发效率。 总的来说,DOM4J是一个功能强大且易用的XML处理库,广泛应用于Java项目中,无论是简单的XML解析还是复杂的XML操作,都能提供...
总结起来,dom4j库提供了DOM和SAX两种XML解析方式,而SAX解析在处理大文件时具有性能优势。通过注册事件处理器,开发者可以在解析过程中动态响应XML结构,实现灵活的数据处理。在实际工作中,选择合适的解析方法取决...
Javadoc文件则包含了DOM4J所有类和方法的详细说明,是编写基于DOM4J代码时的重要参考。 ### 应用场景 DOM4J广泛应用于Java项目中,特别是在需要处理XML配置文件、数据交换、Web服务响应等场合。例如,在Spring框架...
5. **Schema验证**:探究DOM4J如何根据XML Schema进行文档验证,以及错误处理机制。 通过上述分析,我们可以看出DOM4J在XML处理领域的重要地位,其源代码是理解XML处理技术的宝贵资源,对提升Java开发者处理XML的...
这个版本号表示这是DOM4J的2.1.1版,通常包含了一些错误修复、性能优化或新功能的添加。 描述中提到的"source.jar",即"dom4j-2.1.1-sources.jar",是DOM4J的源代码包,包含了DOM4J库的所有源代码。这对于开发者来...
2. **SAX和DOM**: 除了DOM,DOM4J还支持SAX解析器,允许在内存有限的情况下处理大型XML文件。 3. **XPath**: 支持XPath表达式,使得可以方便地定位和提取XML文档中的特定节点。 4. **事件模型**: 提供了基于事件的...
例如,一个Java应用可能使用`log4j`记录用户登录、操作日志,同时利用`dom4j`解析XML配置文件以动态配置应用的行为。 在提供的压缩包中,`lo4j_jar包`包含了`log4j`的库文件,开发者可以直接引入到项目中使用。而`...
#### 四、使用DOM4J修改XML文件 修改XML文件包括增加、删除或更新元素及属性。使用DOM4J进行这些操作非常直观。 ```java // 更新属性值 root.addAttribute("新属性名", "新属性值"); // 删除元素 root.remove...
当XML文件包含DTD(Document Type Definition)声明时,DOM4J默认会尝试从指定的URL加载DTD文件来进行验证。这通常是为了确保XML文件符合预定的结构和规则。然而,在某些情况下,如离线环境或者网络连接不稳定的情况...
2. **配置文件管理**:许多Java应用程序用XML作为配置文件,DOM4J简化了读写这些配置的过程。 3. **数据绑定**:结合XSLT(可扩展样式表语言转换),DOM4J可以将XML数据转换成其他格式,如HTML或者PDF。 4. **框架...
3. `dom4j-2.0.3.jar`:这是DOM4J库的核心运行时文件,包含了所有需要的类和资源,用于在项目中集成和使用DOM4J。 Jaxen是一个独立的XPath引擎,它可以在多种XML处理器(如DOM4J、DOM、JDOM等)上运行。Jaxen-1.1.1...
本项目就是关于如何使用DOM4j解析XML文件,并利用Apache POI将其转换为标准的XLS(Excel)文件。 首先,DOM4j是Java中一个灵活且功能强大的XML处理库,它提供了完整的API来读取、操作和写入XML文档。通过DOM4j,...