使用Dom4j时遇到的两个问题

Posted mydeman

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Dom4j时遇到的两个问题相关的知识,希望对你有一定的参考价值。

前几天在使用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就可以了。

以上是关于使用Dom4j时遇到的两个问题的主要内容,如果未能解决你的问题,请参考以下文章

dom4j插入子节点,自动生成xmlns=""的问题,有谁遇到过,请帮忙解决,谢谢!

dom4j解析

dom4j详解

成都校区Dom4J解析XML的范例浅析

当Java遇到XML 的邂逅+dom4j

dom4j 最常用最简单的用法(转)