Java 解析 XML 文档给出“Prolog 中不允许的内容".错误

时间:2023-01-13
本文介绍了Java 解析 XML 文档给出“Prolog 中不允许的内容".错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我正在用 Java 编写一个程序,它接受一个自定义 XML 文件并对其进行解析.我正在使用 XML 文件进行存储.我在 Eclipse 中收到以下错误.

I am writing a program in Java that takes a custom XML file and parses it. I'm using the XML file for storage. I am getting the following error in Eclipse.

[Fatal Error] :1:1: Content is not allowed in prolog.
org.xml.sax.SAXParseException: Content is not allowed in prolog.
    at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:239)
    at     com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:283  )
    at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:208)
    at me.ericso.psusoc.RequirementSatisfier.parseXML(RequirementSatisfier.java:61)
    at me.ericso.psusoc.RequirementSatisfier.getCourses(RequirementSatisfier.java:35)
    at     me.ericso.psusoc.programs.RequirementSatisfierProgram.main(RequirementSatisfierProgram.java:23  )

包含 XML 文件的开头:

The beginning of the XML file is included:

<?xml version="1.0" ?>
<PSU>
     <Major id="IST">
        <name>Information Science and Technology</name>
        <degree>B.S.</degree>
        <option> Information Systems: Design and Development Option</option>
        <requirements>
            <firstlevel type="General_Education" credits="45">
                <component type="Writing_Speaking">GWS</component>
                <component type="Quantification">GQ</component>

程序能够读取 XML 文件,但是当我调用 DocumentBuilder.parse(XMLFile) 来获取已解析的 org.w3c.dom.Document 时,我得到上面的错误.

The program is able to read in the XML file but when I call DocumentBuilder.parse(XMLFile) to get a parsed org.w3c.dom.Document, I get the error above.

在我看来,我的 XML 文件的序言中没有无效内容.我不知道出了什么问题.请帮忙.谢谢.

It doesn't seem to me that I have invalid content in the prolog of my XML file. I can't figure out what is wrong. Please help. Thanks.

推荐答案

请检查xml文件是否有这样的垃圾字符.如果存在,请使用以下语法删除.

Please check the xml file whether it has any junk character like this .If exists,please use the following syntax to remove that.

String XString = writer.toString();
XString = XString.replaceAll("[^\x20-\x7e]", "");

这篇关于Java 解析 XML 文档给出“Prolog 中不允许的内容".错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

上一篇:如何读写 XML 文件? 下一篇:如何修复 1 字节 UTF-8 序列的无效字节 1

相关文章

最新文章