使用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)使用发生了错误,提示是:
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
java.lang.NoClassDefFoundError: org/jaxen/JaxenException
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
at org.dom4j.DocumentFactory.createXPath(DocumentFactory.java:230)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
at org.dom4j.tree.AbstractNode.createXPath(AbstractNode.java:207)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
at org.dom4j.tree.AbstractNode.selectNodes(AbstractNode.java:164)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
通过信息可以发现是忘记了增加jaxen包,重新下载dom4j-1.6.2.zip,在lib中目录中有jaxen-1.1-beta-6.jar,添加project的classpath就可以了。
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)使用发生了错误,提示是:
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
java.lang.NoClassDefFoundError: org/jaxen/JaxenException
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
at org.dom4j.DocumentFactory.createXPath(DocumentFactory.java:230)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
at org.dom4j.tree.AbstractNode.createXPath(AbstractNode.java:207)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
at org.dom4j.tree.AbstractNode.selectNodes(AbstractNode.java:164)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
通过信息可以发现是忘记了增加jaxen包,重新下载dom4j-1.6.2.zip,在lib中目录中有jaxen-1.1-beta-6.jar,添加project的classpath就可以了。
相关文章推荐
- 初涉网络,自己对服务器的一些基础理解
- hdu acm 1869 六度分离
- 工具篇 - 如果让你重新做一款APP
- 常见的反爬虫和应对方法
- Debian常用設置
- Cocos2d-x 3.x 错误 cocos2dxDownloader 编译报错
- AIM Tech Round Div 1
- 8、支持向量机SVM
- android http 通信(java原生类库实现)
- 2016年工作技能提升计划
- osx下配置Cocos2d-x 3.x Android开发环境
- C++视频课程小结(2)
- 几种排序算法总结
- Python处理验证码第一篇(pytesser初探及报错处理)
- Android面试之View绘制流程以及invalidate()等相关方法分析
- Java中Runnable和Thread的区别
- VC程序里一种很好的线程退出方式,算是复习Event
- AndroidStudio出现错误
- 两个数字交换(不使用临时变量)
- 虚幻4 在VS2015中智能提示不灵敏解决方法