老师,我jar包加载了啊

来源:3-2 Dom4j遍历XML

森林sng

2020-08-03 18:49:12

package three_OneXml;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

import java.util.List;

public class HrReader {
    public void readerXml(){
        String file = "D:\\桌面\\often\\Java\\chengxu\\Study_Java\\Two_JavaWeb\\src\\three_OneXml\\HrReader.xml";
        /*SAXReader类是读取xml文件的核心类,用于将xml解析后以“树”的形式保存在内存中*/
        SAXReader reader = new SAXReader();
        try {
            Document document = reader.read(file);
            //获取xml文档的根节点,即HR标签
            Element root = document.getRootElement();
            //element方法用于获取指定标签集合
            List<Element> employees = root.elements("employee");
            for(Element employee:employees){
                //element方法用于获取唯一子节点对象
                Element name = employee.element("name");
                /*getText()方法用于获取标签文本*/
                String empName = name.getText();
                System.out.println(empName);
            }
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }
    public static void main(String[] args){
        HrReader reader = new HrReader();
        reader.readerXml();
    }
}

http://img.mukewang.com/climg/5f27eb740967384511531030.jpghttp://img.mukewang.com/climg/5f27eb8b0937e67712811022.jpg

写回答

5回答

好帮手慕小脸

2020-08-04

同学你好,学习过程中遇见问题是非常常见的,找错是必备技能,同学可以耐下心去根据报错信息找出问题所在:

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

找不到指定的文件,结合同学之前的给出的目录结构,在three_onexml目录下不存在HrReader.xml文件

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

同学将xml补全完整后再试试吧~另外同学也可以直接将xml文件放置d盘,这里路径修改为最明显的位置。如:

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

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


0

好帮手慕小脸

2020-08-03

同学你好,测试同学的代码是可以正确运行的,如下所示:

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

2、包名要全部小写,如three_OneXml应更改为three_onexml

3、建议同学将其移出,重新添加试试

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


1

森林sng

提问者

2020-08-04

//老师,还是不行,我快要疯了!到底该咋办呢
package three_onexml;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

import java.util.List;

public class HrReader {
    public void readerXml(){
        String file = "D:\\Java\\chengxu\\Study_Java\\Two_JavaWeb\\src\\three_onexml\\HrReader.xml";
        /*SAXReader类是读取xml文件的核心类,用于将xml解析后以“树”的形式保存在内存中*/
        SAXReader reader = new SAXReader();
        try {
            Document document = reader.read(file);
            //获取xml文档的根节点,即HR标签
            Element root = document.getRootElement();
            //element方法用于获取指定标签集合
            List<Element> employees = root.elements("employee");
            for(Element employee:employees){
                //element方法用于获取唯一子节点对象
                Element name = employee.element("name");
                /*getText()方法用于获取标签文本*/
                String empName = name.getText();
                System.out.println(empName);
            }
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }
    public static void main(String[] args){
        HrReader reader = new HrReader();
        reader.readerXml();
    }
}

D:\ruanjianxiazai\jdk13\bin\java.exe "-javaagent:D:\ruanjianxiazai\IntelliJ IDEA\IntelliJ IDEA 2020.2\lib\idea_rt.jar=49808:D:\ruanjianxiazai\IntelliJ IDEA\IntelliJ IDEA 2020.2\bin" -Dfile.encoding=UTF-8 -classpath D:\Java\chengxu\Study_Java\Two_JavaWeb\out\production\Two_JavaWeb;D:\Java\chengxu\Study_Java\Two_JavaWeb\lib\dom4j-2.1.1.jar;D:\Java\chengxu\Study_Java\Two_JavaWeb\lib\jaxen-1.1.6.jar three_onexml.HrReader

org.dom4j.DocumentException: D:\Java\chengxu\Study_Java\Two_JavaWeb\src\three_onexml\HrReader.xml (系统找不到指定的文件。)

at org.dom4j.io.SAXReader.read(SAXReader.java:464)

at org.dom4j.io.SAXReader.read(SAXReader.java:303)

at three_onexml.HrReader.readerXml(HrReader.java:16)

at three_onexml.HrReader.main(HrReader.java:34)

Caused by: java.io.FileNotFoundException: D:\Java\chengxu\Study_Java\Two_JavaWeb\src\three_onexml\HrReader.xml (系统找不到指定的文件。)

at java.base/java.io.FileInputStream.open0(Native Method)

at java.base/java.io.FileInputStream.open(FileInputStream.java:213)

at java.base/java.io.FileInputStream.<init>(FileInputStream.java:155)

at java.base/java.io.FileInputStream.<init>(FileInputStream.java:110)

at java.base/sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:86)

at java.base/sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:184)

at java.xml/com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:652)

at java.xml/com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:150)

at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:860)

at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:824)

at java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)

at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1216)

at java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:635)

at org.dom4j.io.SAXReader.read(SAXReader.java:445)

... 3 more


Process finished with exit code 0


0

好帮手慕小脸

2020-08-04

同学你好,文件路径下包含中文,

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

所以会引发如下错误

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

建议同学将xml位置更换至无中文路径下在测试运行

祝学习愉快~

0

森林sng

提问者

2020-08-03

//麻烦帮我解决解决老师,还是不行
package three_onexml;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

import java.util.List;

public class HrReader {
    public void readerXml(){
        String file = "D:\\桌面\\often\\Java\\chengxu\\Study_Java\\Two_JavaWeb\\src\\three_OneXml\\HrReader.xml";
        /*SAXReader类是读取xml文件的核心类,用于将xml解析后以“树”的形式保存在内存中*/
        SAXReader reader = new SAXReader();
        try {
            Document document = reader.read(file);
            //获取xml文档的根节点,即HR标签
            Element root = document.getRootElement();
            //element方法用于获取指定标签集合
            List<Element> employees = root.elements("employee");
            for(Element employee:employees){
                //element方法用于获取唯一子节点对象
                Element name = employee.element("name");
                /*getText()方法用于获取标签文本*/
                String empName = name.getText();
                System.out.println(empName);
            }
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }
    public static void main(String[] args){
        HrReader reader = new HrReader();
        reader.readerXml();
    }
}

这是报错信息:

D:\ruanjianxiazai\jdk13\bin\java.exe "-javaagent:D:\ruanjianxiazai\IntelliJ IDEA\IntelliJ IDEA 2020.2\lib\idea_rt.jar=57821:D:\ruanjianxiazai\IntelliJ IDEA\IntelliJ IDEA 2020.2\bin" -Dfile.encoding=UTF-8 -classpath D:\桌面\often\Java\chengxu\Study_Java\Two_JavaWeb\out\production\Two_JavaWeb;D:\桌面\often\Java\chengxu\Study_Java\Two_JavaWeb\lib\dom4j-2.1.1.jar;D:\桌面\often\Java\chengxu\Study_Java\Two_JavaWeb\lib\jaxen-1.1.6.jar three_onexml.HrReader

org.dom4j.DocumentException: unknown protocol: d

at org.dom4j.io.SAXReader.read(SAXReader.java:464)

at org.dom4j.io.SAXReader.read(SAXReader.java:303)

at three_onexml.HrReader.readerXml(HrReader.java:15)

at three_onexml.HrReader.main(HrReader.java:33)

Caused by: java.net.MalformedURLException: unknown protocol: d

at java.base/java.net.URL.<init>(URL.java:664)

at java.base/java.net.URL.<init>(URL.java:553)

at java.base/java.net.URL.<init>(URL.java:500)

at java.xml/com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:649)

at java.xml/com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:150)

at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:860)

at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:824)

at java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)

at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1216)

at java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:635)

at org.dom4j.io.SAXReader.read(SAXReader.java:445)

... 3 more


进程已结束,退出代码0


0

0 学习 · 9666 问题

查看课程