Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java org.xml.sax.SAXParseException:过早结束文件_Java_Xml_Domparser - Fatal编程技术网

Java org.xml.sax.SAXParseException:过早结束文件

Java org.xml.sax.SAXParseException:过早结束文件,java,xml,domparser,Java,Xml,Domparser,我目前有以下XML文件 我的XMLParser.java类 package edu.unsw.comp9321.assignment1; import java.io.File; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; public class XMLParser { public voi

我目前有以下
XML
文件

我的
XMLParser.java

package edu.unsw.comp9321.assignment1;

import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;

public class XMLParser {


public void search () {

    try{
        File fXmlFile = new File("/COMP9321Assignment1/xml/musicDb.xml");           
        DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
        Document doc = dBuilder.parse(fXmlFile);

        System.out.println("Root element :" + doc.getDocumentElement().getNodeName());

    } catch (Exception e) {
        e.printStackTrace();
    }

}
}

我在另一个类中创建了一个对象并调用
搜索
,但我一直收到上述错误

有人知道问题出在哪里吗

感谢您的帮助。

通常情况下,“org.xml.sax.SAXParseException:过早结束文件”会由于以下几个原因出现

1.检查xml是否在同一级别正确关闭了所有标记

2.检查是否存在任何名称空间问题


3.检查xml文档的格式是否正确

文件/COMP9321Assignment1/xml/musicDb.xml不存在,或者不包含您认为它包含的内容。您意识到它是一个绝对路径,因此它会在文件系统的根目录下查找目录COMP9321Assignment1,对吗?哦,对了。我应该把这个
.xml
文件放在哪里?我应该如何引用它呢?把它放在你想放的任何地方,并在你的代码中使用实际文件的路径。谢谢。我刚刚创建了一个
res
文件夹,并将文件路径设置为
file fXmlFile=new file(“C:/Users/Giridhaar/workspace/COMP9321Assignment1/res/musicDb.xml”)。这起作用了。我很好奇,如果我在另一台计算机上运行这个项目,它会如何找到文件?文件路径通常作为程序的参数传递。如果要在记事本中打开文件,请键入
notepad c:\path\of\file.txt
。您的程序可能应该将文件路径作为参数。