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

本文转自http://apps.hi.baidu.com/share/detail/32701668

使用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();// 得到根节点
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值