dom4j解析xml时报出文件提前结束
在写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的时候内心真的是绝望啊!!!!!!!
dom4j解析xml时报出文件提前结束的更多相关文章
- dom4j解析xml时取消DTD验证
解决方式整合一下,就分两种: 1.用setFeature() SAXReader reader = new SAXReader();reader.setValidation(false); reade ...
- 关于dom4j解析XML的问题分享
最近在在做个程序需要将C#小工具转成java,因为需要涉及到操作xml文件所以需要引用dom4j: 使用dom4j解析XML时,要快速获取某个节点的数据,使用XPath是个不错的方法,dom4j的快速 ...
- 【JAVA使用XPath、DOM4J解析XML文件,实现对XML文件的CRUD操作】
一.简介 1.使用XPath可以快速精确定位指定的节点,以实现对XML文件的CRUD操作. 2.去网上下载一个“XPath帮助文档”,以便于查看语法等详细信息,最好是那种有很多实例的那种. 3.学习X ...
- 使用DOM4J解析XMl文件与读取XML文件
XML文件 <?xml version="1.0" encoding="UTF-8"?> <bookstore> <book id ...
- java中采用dom4j解析xml文件
一.前言 在最近的开发中用到了dom4j来解析xml文件,以前听说过来解析xml文件的几种标准方式:但是从来的没有应用过来,所以可以在google中搜索dmo4j解析xml文件的方式,学习一下dom4 ...
- 用DOM4J解析XML文件案例
用DOM4J解析XML文件案例,由于DOM4J不像JAXP属于JAVASE里,所以如果要使用DOM4J,则必须额外引入jar包,如图:
- java使用dom4j解析xml文件
关于xml的知识,及作用什么的就不说了,直接解释如何使用dom4j解析.假如有如下xml: dom4j解析xml其实很简单,只要你有点java基础,知道xml文件.结合下面的xml文件和java代码, ...
- Dom4j解析Xml文件,Dom4j创建Xml文件
Dom4j解析Xml文件,Dom4j创建Xml文件 >>>>>>>>>>>>>>>>>>&g ...
- Java进阶(二十七)使用Dom4j解析XML文件
使用Dom4j解析XML文件 写在前面的话 由于论文实验要求,需要实现操作XML文档,为此想到了dom4j这个工具,使用之后深感受益.在此分享给大家,以此共勉. 注:本文转载自http://blog. ...
随机推荐
- vue 修改浏览器标题
主要思路: 1.可以从路由获取当前页面的标题,再通过document.title设值,或者在最外层的index.html页面添加<title>标签 import router from ' ...
- CSS定位布局
CSS定位布局 基础知识 在CSS布局中,定位布局也是一种非常常见的技术手段,我们以京东为例: 上面是非常好的例子,对于定位布局来说它可以将一个元素放在页面上的任意一个位置. 但是定位布局也不能滥用, ...
- P1092 虫食算(洛谷)
今天做了一道题,我之前吹牛的时候曾经说:“这个题我觉得深搜剪枝一下就可以了.”. 我觉得我之前说的没错“这个题深搜剪枝亿下,再加点玄学就可以了!” 题目描述 所谓虫食算,就是原先的算式中有一部分被虫子 ...
- 【软件安装】CentOS7_直播服务搭建_nginx_nginx-http-flv-module
1.介绍 nginx-http-flv-module是在nginx-rtmp-module基础上开发的一个直播模块. 感谢Arut创造了nginx-rtmp-module,它是Nginx的一个优秀的第 ...
- 2.UDP协议
UDP只在IP数据报服务之上增加了很少功能,即复用分用和差错检测功能. 应用层给UDP多长的报文,UDP就照样发送,即一次发送一个完整报文 一.UDP首部格式 这里的长度是指(首部+数据) UDP校验 ...
- OpenLDAP 2.4.44 安装部署避坑指南
写在前面: 有关openLDAP的部署文档在网上随意能找到很多,但是最近用到才发现网上的教程多数是旧版的用法,例如"/etc/openldap/slapd.conf “早已弃用,更有甚者直接 ...
- CppUnit使用和源码解析
前言 CppUnit是一个开源的单元测试框架,支持Linux和Windows操作系统,在linux上可以直接进行源码编译,得到动态库和静态库,直接链接就可以正常使用,在Windows上可以使用VC直接 ...
- 痞子衡嵌入式:16MB以上NOR Flash使用不当可能会造成软复位后i.MXRT无法正常启动
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是i.MXRT上使用16MB以上NOR Flash软复位无法正常启动问题的分析解决经验. 痞子衡这几天在支持一个i.MXRT1050客户项 ...
- 跟老刘学运维day01~谈红帽系统
第0章 谈红帽系统 1.Linux,是一套免费使用和自由传播的类Unix操作系统,其源代码完全开源: 开源:==>将程序与程序的源代码一起提供给用户的服务模式. 开源四大特点:低风险.高品质.低 ...
- 感性认识JWT
常见的认证机制 今天我么聊一聊JWT. 关于JWT,相信很多人都已经看过用过,他是基于json数据结构的认证规范,简单的说就是验证用户登没登陆的玩意.这时候你可能回想,哎哟,不是又那个session么 ...