2009年11月18日

使用 Dom4j 時的 XPath 問題


 
我們使用 dom4j 時可使用 XPath 來取得特定的 node,如:
List list = document.selectNodes(specificColumnXPath);

此時可能會出現這樣的 Exception:
Exception in thread "main" java.lang.NoClassDefFoundError: org/jaxen/JaxenException
其原因是因為少了 jaxen,下載 jar 檔匯入後應該就可以解決了。

另外如果確定 XPath 正確,selectNodes() 卻一直回傳空值(null)的話,
有可能是因為 xmlns 不是 default 值的關係,相關討論網址如下:
  1. JavaWorld@TW Java論壇- 請教dom4j 的 xpath 問題
  2. 主题:解决dom4j无法解析xml命名空间的问题
關於Dom4j、XPath的教學則可以參考:
  1. http://www.dom4j.org/dom4j-1.6.1/guide.html
  2.  http://www.zvon.org/xxl/XPathTutorial/General/examples.html
關鍵字:dom4j、XPath、jaxen、問題、錯誤、無法使用、xmlns、命名空間
參考資料:
  1. jaxen
  2. 在Dom4j中使用xpath
  3. JavaWorld@TW Java論壇- 請教dom4j 的 xpath 問題
  4. 主题:解决dom4j无法解析xml命名空间的问题
  5. http://www.dom4j.org/dom4j-1.6.1/guide.html
  6. http://www.zvon.org/xxl/XPathTutorial/General/examples.html   


更多精選推薦文章

1 意見 :

dontcare 提到...

You may also want to look at vtd-xml, which is a more advanced API than DOM4J

http://vtd-xml.sf.net