Почему SAXParseException возникает только при попытке запустить программу через cmd? (через GUI все работает нормально) - PullRequest
0 голосов
/ 05 июня 2019

Я пытаюсь проанализировать файл XML с помощью анализатора DOM.Когда я запускаю программу через GUI, ошибки нет, но когда я пытаюсь запустить ее через командную строку, SAXParseException: содержимое не разрешено в прологе.происходит.

У меня нет символов до? xml заголовка в моем текстовом редакторе, у меня нет байтов до? xml заголовка в hex редакторе.Мой 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 содержал специальный символ, я переместил свой файл в путь без специальных символов, и ошибка исчезла.

...