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

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

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

Сообщение Endeavour »

Классическая задачка для парсинга: раз в два дня нужно выуживать определённые данные из от полусотни до пары сотен HTML автоотчетов. Отчеты генерятся DLLкой и шаблон файлов один и тот же. Я думал быстро накатать простенький парсер, но запутался в функции Match Regular Expression и в задании самих регулярных выражений. Два дня топчусь на месте. Буду рад помощи.
Вложения
Protocol_example.txt
пример автоотчёта
(35.13 КБ) 10 скачиваний
Parce HTML to the String Array v1.vi
Виайка LV 2018 64bit
(53.99 КБ) 0 скачиваний
Блок схема
Блок схема
Последний раз редактировалось Endeavour 25 ноя 2021, 07:36, всего редактировалось 3 раза.
Аватара пользователя
Kosist

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

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

Сообщение Kosist »

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

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

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

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

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

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

Сообщение Endeavour »

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

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

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

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

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

В таком случае используйте алгоритмы проверки скобок на парность.
И потом, разобрав текст на слои, анализируйте как нужно.
Endeavour
beginner
beginner
Сообщения: 45
Зарегистрирован: 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
Сообщения: 5217
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 21 раз
Поблагодарили: 42 раза

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

Сообщение IvanLis »

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

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

Сообщение Endeavour »

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

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