我正在尝试使用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文件路径包含一个特殊字符,我将文件移到没有特殊字符的路径中,错误消失了。