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