Повторяющиеся границы внутри повторяющихся границ.

Тема в разделе "Границы парсинга", создана пользователем Seomanchik, 20 июн 2013.

  1. Seomanchik

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

    Регистрация:
    20 июн 2013
    Сообщения:
    9
    Необходимо спарсить содержимое повторяющихся границ парсинга, находящихся внутри "родительских" повторяющихся границ парсинга.

    Пример кода:
    Код:
    <Повтор. граница 1>
    <CD_GRAN_1!>
    <CD_GRAN_2!>
    <Начало>
    ...<Одинаковая граница>Нужный мне текст-1(разный)</Одинаковая граница>...
    ...<Одинаковая граница>Нужный мне текст-2(разный)</Одинаковая граница>...
    ...<Одинаковая граница>Нужный мне текст-3(разный)</Одинаковая граница>...
    </Конец>
    </Повтор. граница 1>
    
    <Повтор. граница 1>
    <CD_GRAN_1!>
    <CD_GRAN_2!>
    <Начало>
    ...<Одинаковая граница>Нужный мне текст-4(разный)</Одинаковая граница>...
    ...<Одинаковая граница>Нужный мне текст-5(разный)</Одинаковая граница>...
    ...<Одинаковая граница>Нужный мне текст-6(разный)</Одинаковая граница>...
    </Конец>
    </Повтор. граница 1>
    На выходе необходимо получить:
    <CD_GRAN_1!>;<CD_GRAN_2!>;Нужный мне текст-1, Нужный мне текст-2, Нужный мне текст-3
    <CD_GRAN_1!>;<CD_GRAN_2!>;Нужный мне текст-4, Нужный мне текст-5, Нужный мне текст-6

    1) Задаю "Повторяющиеся границы 1" - разбиваю код документа на повторяющиеся блоки.
    2) Задаю границы парсинга 1 и 2 (неповторяющиеся).
    3) В шаблоне "Повторяющиеся границы 1" указываю: [GRAN1];[GRAN2];
    на выходе получается:
    <CD_GRAN_1!>;<CD_GRAN_2!>
    <CD_GRAN_1!>;<CD_GRAN_2!>
    4) Теперь нужно спарсить и вывести вложенные повторяющиеся границы (их можно сгруппировать в свой блок с тегами <Начало></Конец>). Пробовал использовать следующую конструкцию в "Повторяющиеся границы 1":
    [GRAN1];[GRAN2];[GETMORECYCLECONTENT][SOURCE]<CD_GRAN_3!>[/SOURCE][START]<Одинаковая граница>[/START][END]</Одинаковая граница>[/END][TOSTART][/TOSTART][TOEND][/TOEND][PARAMS][/PARAMS][SEP],[/SEP][/GETMORECYCLECONTENT]

    Где <CD_GRAN_3!> - это граница парсинга, задающая блок с тегами: <Начало>.....</Конец>

    В итоге получается следующее:
    <CD_GRAN_1!>;<CD_GRAN_2!>;Нужный мне текст-1, Нужный мне текст-2, Нужный мне текст-3
    <CD_GRAN_1!>;<CD_GRAN_2!>;Нужный мне текст-1, Нужный мне текст-2, Нужный мне текст-3
    Т.е. берётся содержимое первого блока:
    <Начало>
    ...<Одинаковая граница>Нужный мне текст-1(разный)</Одинаковая граница>...
    ...<Одинаковая граница>Нужный мне текст-2(разный)</Одинаковая граница>...
    ...<Одинаковая граница>Нужный мне текст-3(разный)</Одинаковая граница>...
    </Конец>
    и подставляется в последующие.

    Как можно реализовать задачу?
    И возникают вопросы, связанные с работой макроса [GETMORECYCLECONTENT]:
    1) [URL ]ссылка[ /URL] - вручную чтоли проставлять ссылки на страницы?
    2) Будет ли работать следующая конструкция: [URL ]<CD_DOCURL!>[ /URL] ?
    3) Что такое [SOURCE]текст/код[/SOURCE] Текст/код - это что?
     
  2. kagorec

    kagorec Администратор Команда форума Администратор

    Регистрация:
    3 янв 2011
    Сообщения:
    4.431
    Адрес:
    Latvia
    Если речь о "Повторяющиеся границы внутри повторяющихся границ." тогда:
    Указание адреса стриницы вполне работает в макросе тоже
    не бойтесь пробовать самстоятельно)


    Что такое текст, пример:
    Код:
    Текст (от лат. textus — «ткань; сплетение, связь, сочетание») — в общем плане связная и полная последовательность символов.
    
    Существуют две основных трактовки понятия «текст»: «имманентная» (расширенная, философски нагруженная) и «репрезентативная» (более частная). Имманентный подход подразумевает отношение к тексту как к автономной реальности, нацеленность на выявление его внутренней структуры.
    Что такое код, пример:
    PHP:
    <fieldset class="fieldset" style="margin-top: 6px">
            <
    legend>Иконки для сообщений</legend>
            <
    div style="padding:3px">
                <
    table cellpadding="0" cellspacing="1" border="0" width="95%">
                <
    tr>
                    <
    td colspan="15"><div style="margin-bottom:3px">Вы можете выбрать иконкухарактеризующую сообщение:</div></td>
                </
    tr>
                <
    tr>
                    <
    td width="12%" nowrap="nowrap"><label for="rb_iconid_0"><input type="radio" name="iconid" value="0" id="rb_iconid_0" tabindex="1" onclick="swap_posticon(null)" checked="checked" />Без иконки &nbsp; &nbsp;</label></td>
                    <
    td><input type="radio" name="iconid" value="1" id="rb_iconid_1" tabindex="1" onclick="swap_posticon('pi_1')"  /></td>
    <
    td width="12%"><label for="rb_iconid_1"><img src="images/icons/icon1.gif" alt="Post" id="pi_1" onclick="rb_iconid_1.click()" /></label></td>
    <
    td><input type="radio" name="iconid" value="13" id="rb_iconid_13" tabindex="1" onclick="swap_posticon('pi_13')"  /></td>
    <
    td width="12%"><label for="rb_iconid_13"><img src="images/icons/icon13.gif" alt="Thumbs down" id="pi_13" onclick="rb_iconid_13.click()" /></label></td>
    <
    td><input type="radio" name="iconid" value="12" id="rb_iconid_12" tabindex="1" onclick="swap_posticon('pi_12')"  /></td>
    <
    td width="12%"><label for="rb_iconid_12"><img src="images/icons/icon12.gif" alt="Wink" id="pi_12" onclick="rb_iconid_12.click()" /></label></td>
    <
    td><input type="radio" name="iconid" value="11" id="rb_iconid_11" tabindex="1" onclick="swap_posticon('pi_11')"  /></td>
    <
    td width="12%"><label for="rb_iconid_11"><img src="images/icons/icon11.gif" alt="Red face" id="pi_11" onclick="rb_iconid_11.c
     
  3. Seomanchik

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

    Регистрация:
    20 июн 2013
    Сообщения:
    9
    Спасибо. Такая конструкция заработала.

    Насчёт [SOURCE]текст/код[/SOURCE] не совсем непонятно, как это действует.
    [SOURCE]кусок текста или кода, в котором содержатся повторяющиеся границы, или вообще код всей страницы[/SOURCE] - так чтоли?
     
Similar Threads
  1. HeadD
    Ответов:
    10
    Просмотров:
    2.607
  2. furiec
    Ответов:
    6
    Просмотров:
    1.318
  3. Djahat
    Ответов:
    25
    Просмотров:
    74.211
  4. dmitry__k
    Ответов:
    6
    Просмотров:
    1.794
  5. anton2
    Ответов:
    3
    Просмотров:
    1.112
Загрузка...

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