为什么仅当我尝试通过cmd运行程序时才发生SAXParseException? (通过GUI,一切正常

时间:2019-06-05 08:01:10

标签: java xml domparser saxparseexception

我正在尝试使用DOM解析器解析XML文件。当我通过GUI运行程序时,没有错误,但是当我尝试通过命令提示符运行程序时,SAXParseException:Prolog中不允许内容。发生。

在文本编辑器中,?xml头之前没有字符,在十六进制编辑器中,?xml头之前没有字节。我的XML文件为UTF-8,标头中的编码也为UTF-8。

//header in xml file
<?xml version="1.0" encoding="UTF-8" standalone="no"?>

//code for reading XML file
public void readXML(String file) {
    try {
    File inputFile = new File(file);
    DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
    DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
        if (inputFile.exists()) {
        Document doc = dBuilder.parse(inputFile);
    doc.getDocumentElement().normalize();
            ...

[Fatal Error] :1:1: Content is not allowed in prolog.
org.xml.sax.SAXParseException; systemId: file:/C:/Users/Admin/OneDrive/; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog.
    at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source)
    at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source)
    at javax.xml.parsers.DocumentBuilder.parse(Unknown Source)
    at myPackage.TestXMLConfig.readXML(TestXMLConfig.java:66)
    at myPackage.TestManager.main(TestManager.java:122)

[已解决]

我的XML文件路径包含一个特殊字符,我将文件移到没有特殊字符的路径中,错误消失了。

0 个答案:

没有答案