Java 无法打印给定节点的输出。只能打印根元素
我刚刚开始学习基于教程的JAVA xml=DOM4J,它在解析xml代码时更加灵活。因此,我着重于更多地理解DOM4J,因为与DOM解析器和JDOM相比,它的编码更少 我在打印节点的输出时遇到问题。任何帮助都将不胜感激!请容忍我,因为我仍在学习如何使用它,并更加熟悉它。为了更好地理解,请以简单的方式解释如何正确地执行它。谢谢大家! 我的代码基于TutorialPointJava 无法打印给定节点的输出。只能打印根元素,java,xml,Java,Xml,我刚刚开始学习基于教程的JAVA xml=DOM4J,它在解析xml代码时更加灵活。因此,我着重于更多地理解DOM4J,因为与DOM解析器和JDOM相比,它的编码更少 我在打印节点的输出时遇到问题。任何帮助都将不胜感激!请容忍我,因为我仍在学习如何使用它,并更加熟悉它。为了更好地理解,请以简单的方式解释如何正确地执行它。谢谢大家! 我的代码基于TutorialPoint try { String src = "student.xml"; File inputFil
try {
String src = "student.xml";
File inputFile = new File(src);
SAXReader reader = new SAXReader();
Document doc = reader.read(inputFile);
System.out.println("Root element: "
+ doc.getRootElement().getName());
Element classElement = doc.getRootElement();
List<Node> nodes = doc.selectNodes("/Section/Student");
for (Node node : nodes){
System.out.println("First Name" + node.selectSingleNode("FirstName").getText());
}
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
这是我的XML文件
<?xml version = "1.0"?>
<Section>
<Student>
<Idnumber>0000001</Idnumber>
<FirstName>Cat</FirstName>
<LastName>Dog</LastName>
</Student>
</Section>
我在控制台中收到的错误如下:
根元素:节
主线程java.lang.NoClassDefFoundError中的异常:org/jaxen/JaxenException
位于org.dom4j.DocumentFactory.createXPathDocumentFactory.java:230
位于org.dom4j.tree.AbstractNode.createXPathAbstractNode.java:207
在org.dom4j.tree.AbstractNode.selectNodesAbstractNode.java:164
在com.dls.csb.ParsingXML.mainParsingXML.java:30中引用一个:
为了使用DOM4J解析器,应用程序的类路径中应该有DOM4J-1.6.1.jar和jaxen.jar
显然,类路径中没有jaxenjar。如果您有dom4j-1.6.1.zip归档文件,您可以在lib文件夹中找到一个jaxenjar
我获取了您的代码,并在类路径上使用jaxenjar运行了它,它成功地运行了。你的代码似乎在做你想做的事情,只是你没有完全的依赖关系
Jaxen是一个javaxpath库,该行中的text/Section/Student
List<Node> nodes = doc.selectNodes("/Section/Student");
是一个XPath表达式,用于选择作为根节元素的子元素的所有学生元素。是否在服务器上部署应用程序?谢谢!我来之前就知道了。我忘了添加jaxen.jar,我只有dom4jjar。我也有一个问题,其他jar文件呢?没必要吗?@user3323654:这取决于你想做什么。其他JAR似乎包括针对XMLSchema或RELAXNG进行验证的功能,如果您不做这些事情,那么就不需要这些JAR。目前,不要向类路径添加任何其他JAR。如果以后遇到NoClassDefFoundError,请搜索这些JAR,看看其中是否有JVM抱怨找不到的类,如果是,请将该JAR添加到类路径中。非常感谢!祝你有美好的一天: