使用dom4j 读取xml文件时的中文问题

来源:互联网 发布:孙禄堂 知乎 编辑:程序博客网 时间:2024/05/19 09:36
使用dom4j 读取xml文件时的中文问题:

(一) 在用reader.read(String filename)传递的是文件名的时候,遇到中文的路径则会出错,抛出unknow protocol :d异常.而使用英文名则不存在该错误.

解决办法: 用 reader.read(new File(filename)) 代替 reader.read(String filename)

(二) 如果在XML里面用到了中文,则最好采用下面的方法读取: 
org.dom4j.io.SAXReader reader = new org.dom4j.io.SAXReader(); 
reader.read(File f)//这里的文件如果编码没有指定的话会报 “ org.xml.sax.SAXParseException: 缺少文件根组件" 的错误 
解决办法,按文件保存的类型读取文件,UTF-8兼容所有保存类型 
InputStream ifile = new FileInputStream("c:/test.xml"); 
InputStreamReader ir = new InputStreamReader(ifile, "UTF-8"); 
// File ir = new File("c:/test.xml"); //这样读会报错,如果该文件不是utf-8类型的 
SAXReader reader = new SAXReader(); 
Document doc = reader.read(ir);
原来我使用如下方法读取xml文件报错:
Document document = reader.read(xFile);// 读取XML文件
Element root = document.getRootElement();// 得到根节点
后来根据上边第二点修改为如下形势后可以正常读取了:
InputStream ifile = new FileInputStream(xFile); 
InputStreamReader ir = new InputStreamReader(ifile, "UTF-8"); 
Document document = reader.read(ir);// 读取XML文件

Element root = document.getRootElement();// 得到根节点


原创:http://blog.csdn.net/beiguofengguang/article/details/6544286

0 0
原创粉丝点击