为什么会报错呢,我的路径也没问题呀

来源: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 more


写回答

1回答

好帮手慕阿莹

2019-10-20

同学你好!

这可能是由于路径中包含中文,同学可以将路径通过new File处理一下,可参考:

Document document=reader.read(new File(file));

或者把xml放到没有中文,空格等特殊符号的路径中

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


1

0 学习 · 9666 问题

查看课程