您的位置:首页 > 其它

使用Dom4j时遇到的两个问题

2016-02-10 18:36 281 查看
前几天在使用Dom4j开发项目时,遇到了两个问题,今天记在这里:

1、直接使用SAXReader.read(String url)方法指定文件所在路径,读取包含中文内容的文件时,发生了错误,提示信息为:

org.dom4j.DocumentException: invalid byte 1 of 1-byte UTF-8 sequence (0xb2) Nested exception: invalid byte 1 of 1-byte UTF-8 sequence (0xb2)。

具体原因是:Dom4j内部的方法在读取文件采用了默认的编码,和文件本身的编码不一致。

解决方法:使用SAXReader.read(Reader reader)方法代替前面的方法,先创建一个Reader实例:Reader reader = new InputStreamReader(new FileInputStream(path)),然后将这个reader作为参数传递给SAXReader.read方法。

2、使用doc.getSelectNodes(xpath)使用发生了错误,提示是:


java.lang.NoClassDefFoundError: org/jaxen/JaxenException 


at org.dom4j.DocumentFactory.createXPath(DocumentFactory.java:230) 


at org.dom4j.tree.AbstractNode.createXPath(AbstractNode.java:207) 


at org.dom4j.tree.AbstractNode.selectNodes(AbstractNode.java:164)



通过信息可以发现是忘记了增加jaxen包,重新下载dom4j-1.6.2.zip,在lib中目录中有jaxen-1.1-beta-6.jar,添加project的classpath就可以了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: