Парсинг данных в HTML тексте

Простейшие вопросы в области инженерной разработки
Ответить
Endeavour
junior
junior
Сообщения: 55
Зарегистрирован: 30 июл 2012, 16:00
Версия LabVIEW: 2011 & 8.0

Парсинг данных в HTML тексте

Сообщение Endeavour »

Классическая задачка для парсинга: раз в два дня нужно выуживать определённые данные из от полусотни до пары сотен 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

Activity Gold
expert
expert
Сообщения: 1236
Зарегистрирован: 21 фев 2011, 23:44
Награды: 2
Версия LabVIEW: 2013-2020
Благодарил (а): 23 раза
Поблагодарили: 30 раз
Контактная информация:

Re: Парсинг данных в HTML тексте

Сообщение Kosist »

Выложите сниппет кода, или саму виайку. Со скриншота толку мало, т.к. никто не будет "перерисовывать" с него код себе...
Мы делили апельсин - много наших полегло...
Artem.spb

Activity Автор
professor
professor
Сообщения: 3391
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Парсинг данных в HTML тексте

Сообщение Artem.spb »

Как-то нужно было сделать подобное. Я не стал заморачиваться с универсальными выражениями, а брутально искал заголовки.
У вас в коде видно, что вас интересуют, например, <TD и </TD>, ну так и ищите ЭТО
html.png
Endeavour
junior
junior
Сообщения: 55
Зарегистрирован: 30 июл 2012, 16:00
Версия LabVIEW: 2011 & 8.0

Re: Парсинг данных в HTML тексте

Сообщение Endeavour »

В моих автоотчетах <TD> и </TD> обозначают очередную луковицу из тегов. А внутри этих луковиц, как раз данные и сидят. Я приложил изнанку HTMLки в начале. Там можно легко заметить: разная разметка внутри ячеек, т.е. разные теги. Цель пассажа внизу - отшелушить всю эту разметку и передать дальше лишь очередной кусочек строки.
Artem.spb

Activity Автор
professor
professor
Сообщения: 3391
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Парсинг данных в HTML тексте

Сообщение Artem.spb »

Если у вас <TD> могут быть вложенными, то я вообще сомневаюсь, что получится сделать универсальное выражение
<TD> 1 <TD> 2<TD> 3 </TD></TD></TD>
Поиск текста межу <TD> </TD> при любом хитроумном выражении
выдаст вам "1 <TD> 2<TD> 3 ", встретив первую закрывающую "скобку"

В таком случае используйте алгоритмы проверки скобок на парность.
И потом, разобрав текст на слои, анализируйте как нужно.
Endeavour
junior
junior
Сообщения: 55
Зарегистрирован: 30 июл 2012, 16:00
Версия LabVIEW: 2011 & 8.0

Re: Парсинг данных в HTML тексте

Сообщение Endeavour »

Небеда. Поэтому я и организовал внизу цикл с последовательным удалением начала (Substring 2) и окончания (Substring 3) любых тегов внутри очередной найденонной табличной ячейки <TD>BlaBlaBla</TD> (Substring 1). Противоречия условий поиска в таком подходе я не нахожу.
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5461
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 27 раз
Поблагодарили: 86 раз

Re: Парсинг данных в HTML тексте

Сообщение IvanLis »

Endeavour писал(а): 23 ноя 2021, 23:59 Два дня топчусь на месте. Буду рад помощи.
Регулярки это хорошо, но не особо гибко.
Можете посмотреть, как с помощью DOM парсить данные:
http://www.labviewportal.org/viewtopic. ... 31&p=52681
Endeavour
junior
junior
Сообщения: 55
Зарегистрирован: 30 июл 2012, 16:00
Версия LabVIEW: 2011 & 8.0

Re: Парсинг данных в HTML тексте

Сообщение Endeavour »

Спасибо. Попробую понять ваш подход. На выходных как раз время будет.
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Для чайников»