为什么输出的结果为空

来源: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回答

好帮手慕柯南

2019-07-09

同学你好!同学这里使用了两个种约束形式呢,dtd和xsd。使用一个就可以呢。同学删除一个测试一下呢

http://img.mukewang.com/climg/5d23f2a70001775006580126.jpg

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

0

好帮手慕柯南

2019-07-07

同学你好!

  1. 同学的xml中有两个约束的条件,建议同学去掉一个

    http://img.mukewang.com/climg/5d215ba60001654207370177.jpg

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

    http://img.mukewang.com/climg/5d215bef0001015606680142.jpg

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

0
hario5512
h 老师,你好!xml中的两个约束是我参照其他回答里面的写的,因为我用的IDEA,然后下面的类因为我定义的类名是XPathTest,所以应该是没问题的,按照老师说的修改了类名之后,还是没有输出结果。辛苦老师再看一下
h019-07-08
共1条回复

好帮手慕阿满

2019-07-05

同学你好,同学的xml文件有些问题,在同学贴出来的文件中,有两个根节点,plan和teaching-plan,如:

http://img.mukewang.com/climg/5d1ecadb00011f1206720780.jpg

这里建议同学去掉teaching-plan试试。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

0
hario5512
h 老师,您好,我按照您的建议修改了根节点,但还是没有输出结果,麻烦老师在帮我看一下
h019-07-06
共1条回复

0 学习 · 9666 问题

查看课程