Я получаю следующее исключение при попытке получить доступ к любым узлам анализируемого XML-документа на dom4j:
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-документ или сохранить его в файл. Вот код, который я использую.
Чтобы проанализировать документ:
public class Parser {
public Document parseWithSAX(File aFile) throws DocumentException {
SAXReader xmlReader = new SAXReader();
Document doc = xmlReader.read(aFile);
return doc;
}
Чтобы попытаться получить node, я пробовал следующие строки, все из которых производят одну и ту же ошибку:
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-документ, который, как я предполагаю, означает, что doc (являющийся анализируемым XML-документом) содержит то, что ему нужно.
System.out.println(doc.asXML());
Я очень ценю вашу помощь!