Java小强个人技术博客站点    手机版
当前位置: 首页 >> 开源 >> Xpath java.lang.NoClassDefFoundError: org/jaxen/JaxenException

Xpath java.lang.NoClassDefFoundError: org/jaxen/JaxenException

79660 开源 | 2014-7-19

要解析一个XML文件,如下进行解析

 public static void main(String[] args) throws Exception {
  String xmlpath = 
      DomParse.class.getResource("blackhawk.xml").toString();
  SAXReader reader = new SAXReader();
  Document document = reader.read(xmlpath);
  List projects = 
      document.selectNodes("/blackhawk/disk/uploadPath");
  Iterator it = projects.iterator();
  while (it.hasNext()) {
   Element elm = (Element) it.next();
   System.out.println(elm.getText());
  }
 }

使用dom4j时报错

 java.lang.NoClassDefFoundError: org/jaxen/JaxenException 
 at org.dom4j.DocumentFactory.createXPath(DocumentFactory.java:196) 
 at org.dom4j.tree.AbstractNode.createXPath(AbstractNode.java:205) 
 at org.dom4j.tree.AbstractNode.selectNodes(AbstractNode.java:161) 
 at xml.Dom4jDemo.readTest(Dom4jDemo.java:223) 
 at xml.Dom4jDemo.main(Dom4jDemo.java:188)

很简单是没有找到类,可是使用dom4j只需一个包,怎么会缺类呢

原来

List projects = document .selectNodes("/blackhawk/disk/uploadPath");

其实这里我使用了XPath进行定位查询节点,而Xpath其实不是dom4j的东西,而是一个标准,使用它需要进入如下两个包

jaxen-full.jar

saxpath.jar

这样才可以使用XPath

可是令我郁闷的是,既然你dom4j是解析xml的,而XPath是如此重要的一个东西,你对它支持的又是如此的好,可你的官方包里为什就是没有加入这两个包呢?

推荐您阅读更多有关于“ xml解析 NoClassDefFoundError JaxenException XPath ”的文章

上一篇:POI Excel导出,我的又一个模板方法 下一篇:JFreeeChat Unable to validate using XSD

猜你喜欢

发表评论: