为什么会报错呢,我的路径也没问题呀
来源:3-2 Dom4j遍历XML
恒di
2019-10-20 17:03:34
package com.imooc.dom4j;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class HrReader {
public void readXml() {
String file="C:/Users/邓智恒/eclipse-workspace/xml/src/hr.xml";
//SAXReader类是读取XML文件的核心类,用于将XML解析后以树的形式保存在内存中。
SAXReader reader=new SAXReader();
try {
Document document=reader.read(file);
Element root=document.getRootElement();
List<Element> employees = root.elements("employee");
for(Element employee:employees) {
Element name=employee.element("name");
System.out.println(name.getText());
}
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
HrReader read=new HrReader();
read.readXml();
}
}
org.dom4j.DocumentException: unknown protocol: c
at org.dom4j.io.SAXReader.read(SAXReader.java:464)
at org.dom4j.io.SAXReader.read(SAXReader.java:303)
at com.imooc.dom4j.HrReader.readXml(HrReader.java:13)
at com.imooc.dom4j.HrReader.main(HrReader.java:27)
Caused by: java.net.MalformedURLException: unknown protocol: c
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at org.dom4j.io.SAXReader.read(SAXReader.java:445)
... 3 more1回答
好帮手慕阿莹
2019-10-20
同学你好!
这可能是由于路径中包含中文,同学可以将路径通过new File处理一下,可参考:
Document document=reader.read(new File(file));
或者把xml放到没有中文,空格等特殊符号的路径中
如果我的回答解决了你的疑惑,请采纳,祝学习愉快~
相似问题