前幾天在使用Dom4j開發(fā)項(xiàng)目時(shí),遇到了兩個(gè)問題,今天記在這里:
1、直接使用SAXReader.read(String url)方法指定文件所在路徑,讀取包含中文內(nèi)容的文件時(shí),發(fā)生了錯(cuò)誤,提示信息為:
org.dom4j.DocumentException:invalidbyte1of1-byteUTF-8sequence(0xb2)Nestedexception:invalidbyte1of1-byteUTF-8sequence(0xb2)。
具體原因是:Dom4j內(nèi)部的方法在讀取文件采用了默認(rèn)的編碼,和文件本身的編碼不一致。
解決方法:使用SAXReader.read(Reader reader)方法代替前面的方法,先創(chuàng)建一個(gè)Reader實(shí)例:Reader reader = new InputStreamReader(new FileInputStream(path)),然后將這個(gè)reader作為參數(shù)傳遞給SAXReader.read方法。
2、使用doc.getSelectNodes(xpath)使用發(fā)生了錯(cuò)誤,提示是:





通過信息可以發(fā)現(xiàn)是忘記了增加jaxen包,重新下載dom4j-1.6.2.zip,在lib中目錄中有jaxen-1.1-beta-6.jar,添加project的classpath就可以了。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
