Этот вопрос уже имеет ответ здесь:
Я пишу программу в Java, который берет пользовательский XML-файл и анализирует его. Я использую XML-файл для устройства хранения данных. Я получаю следующую ошибку в 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-файла включено:
Information Science and Technology
B.S.
GWS
GQ
Программа может читать в XML-файле, но когда я звоню DocumentBuilder.parse(XMLFile)
получить проанализированный org.w3c.dom.Document
, Я получаю ошибку выше.
Мне не кажется, что у меня есть недопустимое содержание в прологе моего XML-файла. Я не могу выяснить что не так. Помогите.Спасибо.
Мне кажется, документ хорош, но я подозреваю, что он содержит невидимые символы. Откройте его в шестнадцатеричном редакторе, чтобы убедиться, что до самого первого «<» действительно ничего нет. Убедитесь, что пробелы в заголовке XML являются пробелами. Может быть, удалить пробел перед "?>". Проверьте, какие используются разрывы строк.
Убедитесь, что в документе используется кодировка UTF-8. Некоторые редакторы Windows сохраняют документ как UTF-16 (т.е. каждый второй байт равен 0).
Убедитесь, что в начале вашего XML-файла нет скрытых пробелов. Также можно включить в узел encoding = "UTF-8" (или 16? Понятия не имею).
Проверьте синтаксические ошибки в файле XMl. Я обнаружил эту ошибку при работе с xsl / xsp с Cocoon, и я определяю переменную, используя несуществующий узел или что-то в этом роде. Проверьте весь XML.
Если вы можете управлять xml-файлом, попробуйте добавить немного больше информации в начало файла:
<?xml version="1.0" encoding="UTF-16" standalone="no"?>