Проблема с парсингом таблицы (skip)

Тема в разделе "Разное", создана пользователем w77, 6 ноя 2013.

  1. w77

    w77 New Member Пользователи

    Регистрация:
    6 ноя 2013
    Сообщения:
    9
    Не могу спарсить значение первого тега <TD> в таблице

    Почему 2 варианта работают по разному? Но в итоге не один из них не собирает значение между тегами?
    [START]<tr{skip}<td{skip}>[/START][END]</td>[/END]
    [START]<tr{skip}>{skip}<td{skip}>[/START][END]</td>[/END]

    Таблица вида
    <tr>
    <td></td>
    <td></td>
    </tr>
    <tr id="1">
    <td class='2'></td>
    <td></td>
    </td>
     
  2. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Потому, что они заданы по-разному, вот и работают по-разному =).
    [START]<td>[/START][END]</td>[/END] - спарсит все от первого <td> до первого </td>.
     
  3. w77

    w77 New Member Пользователи

    Регистрация:
    6 ноя 2013
    Сообщения:
    9
    Спасибо за быстрый ответ, но приведенный вами пример не решает задачу

    <tr with="600px">
    <td id='id'>1</td>
    <td>2</td>
    <td>3</td>
    <td>4</td>
    </td>
    <tr class="class"><td>1</td><td>2</td><td>3</td></tr>
    <tr>
    <td>1</td>
    <td>2</td>
    </tr>

    Мне нужно получить из этой таблицы все единицы т.е. значения первого TD
     
  4. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Простите, вы просили первый TD, я вам написал пример, который парсит первый TD и он решает запрашиваемую задачу!

    Теперь вы просите спарсить все единицы, но я вижу список: 1, 2, 3, 4, в котором единица только одна!

    Поразмыслив я понял, что примерно вам нужно, вот решение:

    [START]<td>[/START][END]<tr[/END] - спарсит все от первого <td> до первого <tr.

    Спарсит именно это:
    1</td>
    <td>2</td>
    <td>3</td>
    <td>4</td>
    </td>

    теги потом можно удалить функцией поиск-замены (макрос шаблона вывода REPLACE).

    С уважением к вам, Сергей.
     
  5. w77

    w77 New Member Пользователи

    Регистрация:
    6 ноя 2013
    Сообщения:
    9
    Оригинальное решение)) по идее это должно работать, спасибо.

    ЗЫ: имхо стоит добавить поддержку регулярных выражений. Цены бы парсеру не было) Или хотя бы жадный skip. т.е. в нашем случае более логичный вариант это <tr.*?<td.*?>
     
  6. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Пожалуйста.

    Простите, но Ссылки недоступны для гостей

    – Добавлены динамические границы парсинга (макросы шаблона вывода). Задать их можно до 100 000 штук. Плюс к этому, они поддерживают регулярные выражения (альтернатива обычным и повторяющимся границам парсинга);

    Цена есть.
     
  7. w77

    w77 New Member Пользователи

    Регистрация:
    6 ноя 2013
    Сообщения:
    9
    круто, будем изучать
     
  8. w77

    w77 New Member Пользователи

    Регистрация:
    6 ноя 2013
    Сообщения:
    9
    таки развели на апгрейд)
     
  9. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Разводить никого не пытался, у нас все честно!
    Спасибо вам и приятной работы!
     
  10. w77

    w77 New Member Пользователи

    Регистрация:
    6 ноя 2013
    Сообщения:
    9
    И вам спасибо, возможно я просто неправильно понял смысл сказанного вами ранее Ссылки недоступны для гостей

     

Поделиться этой страницей