老师,我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();
}
}

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

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

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

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~
好帮手慕小脸
2020-08-03
同学你好,测试同学的代码是可以正确运行的,如下所示:

2、包名要全部小写,如three_OneXml应更改为three_onexml
3、建议同学将其移出,重新添加试试
如果我的回答解决了你的疑惑,请采纳,祝学习愉快~
森林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
好帮手慕小脸
2020-08-04
同学你好,文件路径下包含中文,

所以会引发如下错误

建议同学将xml位置更换至无中文路径下在测试运行
祝学习愉快~
森林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
相似问题