Парсинг данных в HTML тексте
Парсинг данных в HTML тексте
Классическая задачка для парсинга: раз в два дня нужно выуживать определённые данные из от полусотни до пары сотен HTML автоотчетов. Отчеты генерятся DLLкой и шаблон файлов один и тот же. Я думал быстро накатать простенький парсер, но запутался в функции Match Regular Expression и в задании самих регулярных выражений. Два дня топчусь на месте. Буду рад помощи.
- Вложения
-
- Protocol_example.txt
- пример автоотчёта
- (35.13 КБ) 61 скачивание
-
- Parce HTML to the String Array v1.vi
- Виайка LV 2018 64bit
- (53.99 КБ) 60 скачиваний
Последний раз редактировалось Endeavour 25 ноя 2021, 07:36, всего редактировалось 3 раза.
-
Kosist
- expert
- Сообщения: 1236
- Зарегистрирован: 21 фев 2011, 23:44
- Награды: 2
- Версия LabVIEW: 2013-2020
- Благодарил (а): 23 раза
- Поблагодарили: 30 раз
- Контактная информация:
Re: Парсинг данных в HTML тексте
Выложите сниппет кода, или саму виайку. Со скриншота толку мало, т.к. никто не будет "перерисовывать" с него код себе...
Мы делили апельсин - много наших полегло...
-
- professor
- Сообщения: 3391
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 172 раза
- Контактная информация:
Re: Парсинг данных в HTML тексте
Как-то нужно было сделать подобное. Я не стал заморачиваться с универсальными выражениями, а брутально искал заголовки.
У вас в коде видно, что вас интересуют, например, <TD и </TD>, ну так и ищите ЭТО
У вас в коде видно, что вас интересуют, например, <TD и </TD>, ну так и ищите ЭТО
Re: Парсинг данных в HTML тексте
В моих автоотчетах <TD> и </TD> обозначают очередную луковицу из тегов. А внутри этих луковиц, как раз данные и сидят. Я приложил изнанку HTMLки в начале. Там можно легко заметить: разная разметка внутри ячеек, т.е. разные теги. Цель пассажа внизу - отшелушить всю эту разметку и передать дальше лишь очередной кусочек строки.
-
- professor
- Сообщения: 3391
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 172 раза
- Контактная информация:
Re: Парсинг данных в HTML тексте
Если у вас <TD> могут быть вложенными, то я вообще сомневаюсь, что получится сделать универсальное выражение
<TD> 1 <TD> 2<TD> 3 </TD></TD></TD>
Поиск текста межу <TD> </TD> при любом хитроумном выражении
выдаст вам "1 <TD> 2<TD> 3 ", встретив первую закрывающую "скобку"
В таком случае используйте алгоритмы проверки скобок на парность.
И потом, разобрав текст на слои, анализируйте как нужно.
<TD> 1 <TD> 2<TD> 3 </TD></TD></TD>
Поиск текста межу <TD> </TD> при любом хитроумном выражении
выдаст вам "1 <TD> 2<TD> 3 ", встретив первую закрывающую "скобку"
В таком случае используйте алгоритмы проверки скобок на парность.
И потом, разобрав текст на слои, анализируйте как нужно.
Re: Парсинг данных в HTML тексте
Небеда. Поэтому я и организовал внизу цикл с последовательным удалением начала (Substring 2) и окончания (Substring 3) любых тегов внутри очередной найденонной табличной ячейки <TD>BlaBlaBla</TD> (Substring 1). Противоречия условий поиска в таком подходе я не нахожу.
-
IvanLis
- guru
- Сообщения: 5461
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 27 раз
- Поблагодарили: 86 раз
Re: Парсинг данных в HTML тексте
Регулярки это хорошо, но не особо гибко.
Можете посмотреть, как с помощью DOM парсить данные:
http://www.labviewportal.org/viewtopic. ... 31&p=52681
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Re: Парсинг данных в HTML тексте
Спасибо. Попробую понять ваш подход. На выходных как раз время будет.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение