【发布时间】:2019-10-04 02:29:27
【问题描述】:
我正在尝试解析一个 xml 文件,到目前为止,这就是我所写的。
public class XMLTest {
public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException {
File xmlFile = new File("D:\\workspace\\sudoku baby\\sudoku.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(xmlFile);
}
它不断吐出文件未找到异常,像这样
Exception in thread "main" java.io.FileNotFoundException: D:\workspace\sudoku baby\sudoku.xml (The system cannot find the file specified)
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:654)
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.DOMParser.parse(DOMParser.java:246)
at java.xml/com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:339)
at java.xml/javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:206)
at testingXML.XMLTest.main(XMLTest.java:14)
` 我已经确定它是正确的文件路径,并且经过一些测试它可以找到该文件。当我尝试解析它时会发生错误。我不确定这里的问题到底是什么,如果有人可以指出或提供帮助,那就太好了。
【问题讨论】:
-
错误信息中的路径与您的源代码中的路径不同。确保您正在运行您认为正在运行的代码,例如删除所有已编译的代码(.class 文件)
-
日志中提到的 testingXML.Employees 类中的错误,而不是 XML Test 类中的错误。
-
该输出看起来不像来自该代码...
"D:\\workspace\\sudoku baby\\sudoku.xml"vs.D:\Users\mtsoy\staff.xml -
你的路径“数独宝贝”中有一个空格,这往往会造成问题的次数
-
有些人怀疑空间,也可以质疑 D: 上的权利。 用其他路径测试一下就行了。