|
1 / 1 / 0
Регистрация: 24.02.2014
Сообщений: 19
|
||||||||||||||||
Парсинг, регулярные выражения с большим объёмом и многопоточностью15.07.2016, 10:21. Показов 8275. Ответов 12
Всем привет, нужна помощь в распарсовке XML документа, документ огромных размеров, все теги и содержимое в одной строке, нужно распасить всю строку и получить всё содержимое в разбитом виде в массиве.
тоесть сам документ имеет структуру:
нужно разбить его в массив, чтобы туда попали и теги и текст без потерь символов, пробовал сплитить не помогло терял переменные, второй шаг был добавить определённый символ перед и после тегов, что дало возможность расплитить всю строку, но данный метод выполняется приличнео времени... файл размером в 1м обрабатывается примерно 6-8 мин... плюс к этому прока идёт процесс форма зависает, пробовал с много поточностью то ошибка с прогрес баром то что нельзя его исправлять в другом потоке то ещё что-то... в итоге вот что у меня получилось с много поточностью, то ошибки то потоки не помогают и всё равно зависают формы...:
0
|
||||||||||||||||
| 15.07.2016, 10:21 | |
|
Ответы с готовыми решениями:
12
Регулярные выражения (Парсинг)
|
|
14145 / 9374 / 1350
Регистрация: 21.01.2016
Сообщений: 35,307
|
|
| 15.07.2016, 10:25 | |
|
Bulbash554, выброси этот ужас и посмотри в сторону XPath или XML-сериализации.
0
|
|
|
1 / 1 / 0
Регистрация: 24.02.2014
Сообщений: 19
|
|
| 15.07.2016, 10:37 [ТС] | |
|
Usaga, в дело в том что содержимого XML не возможно предугадать, помимо того что в работе с файлом нужен не только текст но так и сами теги, Сама XML это документ Word, тегами разбиты переменные которые необходимо склеить...
для этого и нужно получить документ в виде массива для упрощённой работы...
0
|
|
|
14145 / 9374 / 1350
Регистрация: 21.01.2016
Сообщений: 35,307
|
|
| 15.07.2016, 11:38 | |
|
Bulbash554, XPath как раз-таки про это.
Добавлено через 1 минуту XPath позволит тебе за один запрос получить коллекцию объектов отвечающих твоим требованиям.
0
|
|
|
1 / 1 / 0
Регистрация: 24.02.2014
Сообщений: 19
|
|
| 15.07.2016, 12:28 [ТС] | |
|
Usaga, попробовал, что-то нечего дельного не получилось да и особо не знаком с этим...
то что попробовал выгрузить выгрузило как одну сплошную строку...
0
|
|
|
14145 / 9374 / 1350
Регистрация: 21.01.2016
Сообщений: 35,307
|
|
| 15.07.2016, 12:30 | |
|
0
|
|
|
1 / 1 / 0
Регистрация: 24.02.2014
Сообщений: 19
|
|
| 15.07.2016, 12:31 [ТС] | |
|
Usaga, можешь помочь разобраться ?
0
|
|
|
14145 / 9374 / 1350
Регистрация: 21.01.2016
Сообщений: 35,307
|
|
| 15.07.2016, 13:14 | |
|
Bulbash554, приведи пример XML-документа, и пример результата, который нужно получить (желательно с описанием).
0
|
|
|
1 / 1 / 0
Регистрация: 24.02.2014
Сообщений: 19
|
||||||
| 15.07.2016, 14:05 [ТС] | ||||||
|
Теги в файле могут быть разные, а так же весь код xml в одну строку, тоесть :
Ещё раз повторюсь что xml в одну строку Чуток позже могу скинуть скрины
0
|
||||||
|
14145 / 9374 / 1350
Регистрация: 21.01.2016
Сообщений: 35,307
|
|
| 15.07.2016, 14:18 | |
|
Bulbash554, то, что XML в одну строку вообще ни на что не влияет. То, что теги разные могут быть - и ежу понятно. Критерии поиска какие?
0
|
|
|
1 / 1 / 0
Регистрация: 24.02.2014
Сообщений: 19
|
|
| 15.07.2016, 14:20 [ТС] | |
|
Парсится полностью все. Выборок не должно быть
0
|
|
|
14145 / 9374 / 1350
Регистрация: 21.01.2016
Сообщений: 35,307
|
|
| 15.07.2016, 14:31 | |
|
Bulbash554, тогда выходом будет загрузка всего документа и построение на его основе DOM. С полученной моделью можно будет делать всё, что душа пожелает (обходить, видоизменять, дополнять). Так поступает сам Word.
Начать копать можно с класса XDocument. Добавлено через 3 минуты Кстати, для работы с DOCX-документами существует такая классная штука как OpenXML SDK.
1
|
|
|
1 / 1 / 0
Регистрация: 24.02.2014
Сообщений: 19
|
|
| 15.07.2016, 14:37 [ТС] | |
|
Окай, спасибо, изучу отпишусь)
0
|
|
| 15.07.2016, 14:37 | |
|
Помогаю со студенческими работами здесь
13
Парсинг [регулярные выражения] Парсинг через регулярные выражения Регулярные выражения. Парсинг блоков
Регулярные выражения. Парсинг текстовых файлов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет
значение производной при заданном х
Логарифм записывается как: (x-2)log(x^2+2) -. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|