小编Dan*_*ne 的帖子

在Dom4j中使用Xpath

尝试访问dom4j上已解析的xml文档的任何节点时,我收到以下异常:

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)
Run Code Online (Sandbox Code Playgroud)

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

要解析文档:

 public class Parser {

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

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

      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'");
Run Code Online (Sandbox Code Playgroud)

这将打印出xml doc,我假设这意味着doc(解析的xml doc)包含它应该包含的内容.

      System.out.println(doc.asXML());
Run Code Online (Sandbox Code Playgroud)

我真的很感谢你的帮助!

java xml dom4j

19
推荐指数
3
解决办法
3万
查看次数

标签 统计

dom4j ×1

java ×1

xml ×1