powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Ошибка в XML
10 сообщений из 10, страница 1 из 1
Ошибка в XML
    #38963475
VaneS Ri_lax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, помогите решить проблему. Есть на сервере php скрипт который обходит все файлы в определенной директории и в результате строит дерево файлов с полными их путями относительно корня той директории. Далее формирует XML и записывает все данные туда. Вот пример XML:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
<?xml version="1.0" encoding="UTF-8"?>
<File_list>
	<scan time="1432093201"></scan>
<file>
		<!--Ссылка на файл-->
		<name>/file1</name>
		<time>1408595853</time>
	</file>
	<file>
		<!--Ссылка на файл-->
		<name>/dir/file2</name>
		<time>1423637278</time>
	</file>
	<file>
		<!--Ссылка на файл-->
		<name>/dir/dir/file3</name>
		<time>1408595854</time>
	</file>
</File_list>


Но так как файлов очень много, примерно 17 000, соответственно и элементов file в XML очень много.
Этот скрипт выполняется по крону,каждые мин 30.
На другом сервере есть программа написанная на Java, которая запускается в планировщике задач.
Она по http загружает ту XML, но при парсинге ее периодически возникает ошибка:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
May 19, 2015 8:45:02 AM XmlLoader load
SEVERE: null
org.jdom2.input.JDOMParseException: Error on line 62872 of document http://80.132.65.28/damp/dataxml.xml: XML document structures must start and end within the same entity.
        at org.jdom2.input.sax.SAXBuilderEngine.build(SAXBuilderEngine.java:228)
        at org.jdom2.input.sax.SAXBuilderEngine.build(SAXBuilderEngine.java:277)
        at org.jdom2.input.SAXBuilder.build(SAXBuilder.java:1141)
        at XmlLoader.load(XmlLoader.java:41)
        at Main.main(Main.java:40)
Caused by: org.xml.sax.SAXParseException; systemId: http://80.132.65.28/damp/dataxml.xml; lineNumber: 62872; columnNumber: 6; XML document structures must start and end within the same entity.
        at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:203)
        at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:177)
        at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:441)
        at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:368)
        at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1436)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.endEntity(XMLDocumentFragmentScannerImpl.java:903)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.endEntity(XMLDocumentScannerImpl.java:563)
        at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.endEntity(XMLEntityManager.java:1394)
        at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.load(XMLEntityScanner.java:1764)
        at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.skipSpaces(XMLEntityScanner.java:1488)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.seekCloseOfStartTag(XMLDocumentFragmentScannerImpl.java:1379)
        at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:247)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2786)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606)
        at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:117)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
        at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
        at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:649)
        at org.jdom2.input.sax.SAXBuilderEngine.build(SAXBuilderEngine.java:217)
        ... 4 more


В чем может быть проблема?
Заранее большое спасибо!
...
Рейтинг: 0 / 0
Ошибка в XML
    #38963499
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VaneS Ri_lax,

Ну наверное в размере файла :-)
По идее через DOM нельзя парсить xml больше 2Гб.
Попробуйте использовать SAX-парсер.
Он потоковый и не налагает особых ограничений на xml-файл.
...
Рейтинг: 0 / 0
Ошибка в XML
    #38963537
irbis_al
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://80.132.65.28/damp/dataxml.xml: XML document structures must start and end within the same entity.
at org.jdom2.input.sax.SAXBuilderEngine.build(SAXBuilderEngine.java:228)


Либо недокачанный xml(неправильно скачанный) либо у файла xml неправильная структура или в данных есть не затенённые символы типа & < > и т.д
...
Рейтинг: 0 / 0
Ошибка в XML
    #38963568
VaneS Ri_lax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mad_nazgul,

Так файл весит 3мб всего)
...
Рейтинг: 0 / 0
Ошибка в XML
    #38963662
morewind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я бы посмотрел на строку "Error on line 62872 of document" может там какие-то символы в имени файла которые нарушают структуру xml.
...
Рейтинг: 0 / 0
Ошибка в XML
    #38964113
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
morewindЯ бы посмотрел на строку "Error on line 62872 of document" может там какие-то символы в имени файла которые нарушают структуру xml.

В смысле PHP не через DOM создает xml-фйал, а как просто текстовый.
Соответственно в строки не экранируются?
Вполне возможно.
От PHPников можно ждать все что угодно.
Вплоть до "гашения" исключения и записи стектрейса в xml-файл. :-)
...
Рейтинг: 0 / 0
Ошибка в XML
    #38964178
morewind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mad_nazgulmorewindЯ бы посмотрел на строку "Error on line 62872 of document" может там какие-то символы в имени файла которые нарушают структуру xml.

В смысле PHP не через DOM создает xml-фйал, а как просто текстовый.
Соответственно в строки не экранируются?
Вполне возможно.
От PHPников можно ждать все что угодно.
Вплоть до "гашения" исключения и записи стектрейса в xml-файл. :-)

На то что файл генерируется как просто текстовый указывает строка в начале файла
<scan time="1432093201"></scan>
в котором значение time записано в кавычках, в тоже время в значении ссылки на файл написано
<time>1408595853</time>
без кавычек. Думаю, что если бы использовался DOM то он бы записывал значения единообразно (или все в кавычках или все без кавычек). Ну и парсер не даром ругается на конкретную строку - там или неожиданный для него конец файла или нарушение структуры xml. Думаю, что автор глянув на эту строчку и сам догадается в источнике проблемы.
...
Рейтинг: 0 / 0
Ошибка в XML
    #38964241
Фотография Dmitry.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VaneS Ri_lax,

ставлю на недокачанный xml, либо xml с ошибкой
готовьте доказательную базу для разработчиков php :)

прежде чем парсить, сохраните xml в локальный файл, и при возникновении ошибки посмотрите на содержимое этого файла
...
Рейтинг: 0 / 0
Ошибка в XML
    #38964771
VaneS Ri_lax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Меня смущает то что ошибка возникает в случайное время, т.е. n-раз программа может отработать нормально, а потом на какой то раз выведет вот такую ошибку. За все это время содержание xml не меняется, просто файлы пересканируются и файл xml перезаписывается.
Отсюда можно сделать вывод что файл то записывается правильно, то нет. По этому я и думаю что дело в нехватке памяти у PHP.
...
Рейтинг: 0 / 0
Ошибка в XML
    #38964826
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
morewindНа то что файл генерируется как просто текстовый указывает строка в начале файла
<scan time="1432093201"></scan>
в котором значение time записано в кавычках, в тоже время в значении ссылки на файл написано
<time>1408595853</time>
в первом случае атрибут, во втором элемент :)

о рукотворчестве скорее говорит глубокомысленный комментарий
Код: xml
1.
<!--Ссылка на файл-->
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Ошибка в XML
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]