dom4j解析xml时报出文件提前结束
2024-10-20 05:29:35
在写javaweb小项目的时候,用dom4j解析xml报出如下错误:
org.dom4j.DocumentException:Error ....... Nested exception: 文件提前结束。
package com.miragic.utils; import java.io.FileNotFoundException;
import java.io.FileOutputStream; import java.io.UnsupportedEncodingException; import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter; //操作XML文件的方法
public class JaxpUtils { static String path; static {
path=JaxpUtils.class.getClassLoader().getResource("users.xml").getPath(); }
public static Document getDocument() {
//创建一个dom4j解析器
try {
SAXReader reader=new SAXReader();
Document document=reader.read(path);
return document;
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
} public static void write2xml(Document document) { try {
XMLWriter writer=new XMLWriter(new FileOutputStream(path),OutputFormat.createPrettyPrint()); } catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} } }
百度了好久,有的说是xml没有根目录,有的说是xml格式不对,然后我检查了xml格式并且重写了好几次,但都木有用,以下为xml代码:
<?xml version="1.0" encoding="UTF-8"?>
<users>
<user username="miragic" password="000000" email="469548329@qq.com" birthday="1997-2-1" ></user>
</users>
同时,还排除了一下编码的错误,并没有发现异常.
错误原因:解析xml没有关流
解决方法:
package com.miragic.utils; import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException; import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter; //操作XML文件的方法
public class JaxpUtils { static String path; static {
path=JaxpUtils.class.getClassLoader().getResource("users.xml").getPath(); } //private static Document document; public static Document getDocument() {
//创建一个dom4j解析器
try {
SAXReader reader=new SAXReader();
Document document=reader.read(path);
return document;
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
} public static void write2xml(Document document) { try {
XMLWriter writer=new XMLWriter(new FileOutputStream(path),OutputFormat.createPrettyPrint());
writer.write(document) ;
writer.close() ;
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}catch(IOException e) {
e.printStackTrace();
} } }
加了两行
writer.write(document);
writer.close();
问题解决.
总结:一个简单的小错误,说白了还是理解的不够透彻导致写代码的时候丢三落四,好歹问题解决了,找bug的时候内心真的是绝望啊!!!!!!!
最新文章
- Lining.js - 为CSS提供 ::nth-Line 选择器功能
- JSON value
- 解决ecshop登陆自动退出的莫名现象
- PHP裁剪图片
- WebService开发应用
- GPRS优点介绍及GPRS上网相关知识(转)
- 初识DIV+CSS
- OAuth 2 开发人员指南(Spring security oauth2)
- 洛谷P1091 合唱队形
- mysql 5.7 ERROR 1054(42S22) Unknown column &#39;password&#39; in ‘field list’ 报错
- 【Android】android:windowSoftInputMode属性详解
- ADC裸机程序
- 浅谈 OpenResty
- [转]Reporting Services 中的身份验证类型
- ios 7新特性
- Java高性能并发编程——线程池
- CSS布局框架 960GS
- java中集合部分的笔记
- 【LG4735】最大异或和
- 八大CMS内容管理系统推荐
热门文章
- Hadoop进阶命令使用介绍
- 《重学 Java 设计模式》PDF 出炉了 - 小傅哥,肝了50天写出18万字271页的实战编程资料
- commons-fileload图片文件上传工具 , servlet文件图片上传案列
- python发送邮件插件
- Ethical Hacking - Web Penetration Testing(2)
- GPO - Backup and Restore
- OSCP Learning Notes - WebApp Exploitation(2)
- 【真实分享】学习linux!让我工资翻5倍!从月薪3000到年薪18W!只用了六个月!
- odoo12数据库自动化备份
- springcloud之Eureka注册中心