首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Dom4j中使用Xpath

在Dom4j中使用Xpath
EN

Stack Overflow用户
提问于 2009-11-04 03:29:48
回答 4查看 27.3K关注 0票数 21

当我试图访问dom4j上解析的xml文档的任何节点时,我得到了以下异常:

代码语言:javascript
运行
复制
Exception in thread "main" 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)
at xmlparser.LevelsExtractor.findI(LevelsExtractor.java:73)
at xmlparser.Main.main(Main.java:33)

我知道解析是有效的,因为我可以让解析器打印出xml文档或将其保存到文件中。这是我正在使用的代码。

要解析文档,请执行以下操作:

代码语言:javascript
运行
复制
 public class Parser {

 public Document parseWithSAX(File aFile) throws DocumentException {
    SAXReader xmlReader = new SAXReader();
    Document doc = xmlReader.read(aFile);
    return doc;
  }

为了尝试获取节点,我尝试了以下几行代码,所有这些代码行都会产生相同的错误:

代码语言:javascript
运行
复制
      List list = doc.selectNodes("");
      QName qn = new QName("////Token/text()='Introduction'");
      Element el = doc.selectSingleNode("////Token/text()='Introduction'");
      Node node = doc.selectSingleNode( "/DOCUMENT/PAGE/TEXT/TOKEN/text()= 'Introduction'");

这将打印出xml文档,我认为这意味着文档(已解析的xml文档)包含它应该包含的内容。

代码语言:javascript
运行
复制
      System.out.println(doc.asXML());

我真的很感谢你的帮助!

EN

Stack Overflow用户

发布于 2009-11-07 09:13:20

因此,如果除了jdom4 jar之外还包含jaxen-1.1-beta-6.jar,那么xpath就可以工作。注意: jaxen-1.1.1.jar不起作用。如果您有来自jdom的classdef错误,请查看它们的依赖关系,并确保您使用的是它们认可的jar(对于1.6.1版本,现在通常是jar的较旧版本)。希望这篇文章能帮助任何有类似问题的人。再次感谢大家的帮助!

票数 5
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1669625

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档