| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > Большой xml чтение некорректно работает |
| Автор: izver84 6.7.2016, 09:40 | ||||||
| Добрый день. Получаю с сервера xml файл
Код программы //определение файла
//Чтение файла (parser)
Если Файл несколко киллобайт, то всё коректно работает. В основном файл имеет объем более 25 МВ. Тогда Программа не корректно определяет значения. Как читать большие xml файлы? |
| Автор: LSD 6.7.2016, 11:56 |
| Что-то мне это кажется сомнительным, что парсер работает некорректно с большими файлами. OutOfMemoryError - это да, легко возможно. А что именно некорректно работает? |
| Автор: _zorn_ 6.7.2016, 13:13 |
| libxml Сталкивался с таким на пхп. Даже пулреквест для симфонии отправлял (немного не по феншую, приняли по ошибке, но потом переделали). Копать в сторону XML_PARSE_HUGE |
| Автор: izver84 6.7.2016, 14:21 | ||||||
Если отталкиваться от моего примера, то результат такой
Протестировал с файлом больше 200 Кб Результат
|
| Автор: zera 6.7.2016, 15:39 |
| как-то совершенно непонятно какие выводы надо сделать из приведенных результатов, но тоже склоняюсь к тому, что нужно saxParser, а не domParser |
| Автор: LSD 7.7.2016, 12:16 |
Я вот тоже не понимаю, что надо в этом результате увидеть. Выкладывай уж файл целиком. |
| Автор: izver84 24.8.2016, 12:03 | ||||
Код
пример есть тег <NumarulFact>1215663</NumarulFact> для него реально значение тега <Cod> 2851 2862 2311 2326 3801 а результат
|
| Автор: izver84 24.8.2016, 14:17 |
| Сам файл |
| Автор: zera 24.8.2016, 16:06 |
| структура xml? |
| Автор: izver84 24.8.2016, 16:47 | ||||||||
Извеняюсь не успеваю В xml находиться данные по накладным Имеем дерово Тег <Import xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">, который содержит группу <Factures> (накладные). В свою очередь группа <Factures> имеет группу <dec> (документ). Тег <dec> </dec> содержит даеные по документу заголовок документа <DataPrezentari>01.08.2016</DataPrezentari> дата документа <NumarulFact>1215662</NumarulFact> номер документа <depozitul_destinatarului>SA"JLC"Chisinau</depozitul_destinatarului> адрес получателя <Cod_Incomlac_destinatarului>125380000</Cod_Incomlac_destinatarului> код получателя дальше строки документа <linie> </linie> содержимое строки документа <Cod>3801</Cod> код товара <Cantitatea>1540</Cantitatea> кол-во товара остально меня не интересует Сделал другой файл который содержит только два документа
результат парсинга
Получается программа ищет данные по тегу <linie> Программа находит все даные в файле а не в текущем теге <dec>
|
| Автор: izver84 25.8.2016, 16:58 | ||||
Не nList2 - а как? и поэтому проблемы? "linie" не я назвал, ко мне так приходит. |
| Автор: zera 26.8.2016, 10:51 |
| про имена переменных это уже не в этой теме, а проблема в doc.getElementsByTagName |
| Автор: izver84 29.8.2016, 11:00 | ||||||
Точно, нашел решение вместо
надо
Все работает. |
| Автор: zera 29.8.2016, 13:57 |
| ну да, теперь это называется "нашел решение" |