为什么输出的结果为空
来源:3-8 XPath实验室
Mario5512
2019-07-04 23:02:50
package com.learn.dom4j;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;
import java.io.File;
import java.util.List;
public class XPathTest {
public void xpathTest(String xPathExp) {
File f1 = new File("E:\\JavaWeb1\\src\\plan.xml");
SAXReader reader = new SAXReader();
try {
Document document = reader.read(f1);
List<Node> nodes = document.selectNodes(xPathExp);
for (Node node : nodes) {
Element e = (Element)node;
System.out.println(e.elementText("course-name"));
System.out.println(e.elementText("course-hour"));
System.out.println(e.elementText("course-form"));
System.out.println("=============================");
}
} catch (DocumentException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
XPathTest test = new XPathTest();
test.xpathTest("//course");
}
}<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plan SYSTEM "pl.dtd"> <plan xmlns="http://w3school.com.cn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="pl.xsd"> <teaching-plan> <course id="1"> <course-name>大学英语</course-name> <course-hour>34</course-hour> <course-form>1</course-form> </course> <course id="2"> <course-name>高等数学</course-name> <course-hour>36</course-hour> <course-form>2</course-form> </course> <course id="3"> <course-name>计算机基础</course-name> <course-hour>30</course-hour> <course-form>3</course-form> </course> <course id="5"> <course-name>大学体育</course-name> <course-hour>88</course-hour> <course-form>4</course-form> </course> <course id="6"> <course-name>大学物理</course-name> <course-hour>56</course-hour> <course-form>4</course-form> </course> <course id="7"> <course-name>大学生活</course-name> <course-hour>34</course-hour> <course-form>4</course-form> </course> <course id="8"> <course-name>心理学</course-name> <course-hour>29</course-hour> <course-form>4</course-form> </course> <course id="9"> <course-name>软件工程</course-name> <course-hour>8</course-hour> <course-form>4</course-form> </course> <course id="10"> <course-name>线性代数</course-name> <course-hour>66</course-hour> <course-form>4</course-form> </course> </teaching-plan> </plan>
3回答
同学你好!同学这里使用了两个种约束形式呢,dtd和xsd。使用一个就可以呢。同学删除一个测试一下呢

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~
好帮手慕柯南
2019-07-07
同学你好!
同学的xml中有两个约束的条件,建议同学去掉一个

测试类中应该使用XPathTestor,同学修改测试一下

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~
好帮手慕阿满
2019-07-05
同学你好,同学的xml文件有些问题,在同学贴出来的文件中,有两个根节点,plan和teaching-plan,如:

这里建议同学去掉teaching-plan试试。
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
相似问题