Как собрать таблицу 3х видов?

  • Автор темы Автор темы art22
  • Дата начала Дата начала

art22

Client
Регистрация
24.06.2016
Сообщения
521
Реакции
80
Баллы
28
Добрый день. собираю таблицы. Есть 3 вида таблицы.

С помощью регулярки
<td>[^<>]*?<p>SKU:</p>[^<>]*?</td>[^<>]*?<td>[^<>]*?<p>(.*?)</p>[^<>]*?</td>[^<>]*?

собираю таблицы. Как адаптировать регулярку так чтобы все 3 вида собрало? Отличаются тегами <p>,<b> и без тегов

Пример:

1
<tr>
<td>SKU:</td>
<td>JR5996</td>
</tr>
2
<tr>
<td><p>SKU:</p></td>
<td><p>JR5996<p></td>
</tr>
3
<tr>
<td><b>SKU:</b></td>
<td><b>JR5996</b></td>
</tr>
 
Добрый день. собираю таблицы. Есть 3 вида таблицы.

С помощью регулярки
<td>[^<>]*?<p>SKU:</p>[^<>]*?</td>[^<>]*?<td>[^<>]*?<p>(.*?)</p>[^<>]*?</td>[^<>]*?

собираю таблицы. Как адаптировать регулярку так чтобы все 3 вида собрало? Отличаются тегами <p>,<b> и без тегов

Пример:

1
<tr>
<td>SKU:</td>
<td>JR5996</td>
</tr>
2
<tr>
<td><p>SKU:</p></td>
<td><p>JR5996<p></td>
</tr>
3
<tr>
<td><b>SKU:</b></td>
<td><b>JR5996</b></td>
</tr>
Попробуйте собирать таблицы без привязки к внутр. верстке в список, затем берите строку из списка и заменяйте все теги на пустоту.

Регулярка для сбора строк из HTML-таблицы в список:
Развернуть Свернуть Копировать
<tr>[\w\W]*?</tr>
Регулярка для очистки от тегов:
Развернуть Свернуть Копировать
<.*?>

62195

62194
 
Последнее редактирование:
  • Оценить
Реакции: art22
Попробуйте собирать таблицы без привязки к внутр
то что я привел пример это просто пример из большой таблицы, пару строк
Таблица большая, в одной таблице может быт до 15 строк. По этому нужно каждую ячейку собрать по отдельности и добавить в ексель. Мне нужно вытащить только артикул и т п.
 
Последнее редактирование:
Почему когда регулярку указываю без тегов <p>,<b> не парсит данные? По сути должен парсить данные с тегами и без


<td>[^<>]*?SKU:[^<>]*?</td>[^<>]*?<td>[^<>]*?(.*?)[^<>]*?</td>[^<>]*?
 
<tr[^<>]*>\s*<td[^<>]*>(?:<[pb]>)*SKU:(?:</[pb]>)*</td>\s*<td[^<>]*>(?:<[pb]>)*([^<>]+)(?:</[pb]>)*</td>\s*</tr>
но оно того не стоит. Лучше просто парсить сначала весь блок, а потом по одному атрибуту распарсивать
 
  • Оценить
Реакции: art22

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)