В повторяющихся границах не учитывается номер тега от начала парсинга

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

  1. Reset

    Reset Active Member Пользователи

    Регистрация:
    16 дек 2013
    Сообщения:
    114
    Не удаляются пробелы в повторяющихся границах парсинга

    Вот такой кусочек кода

    HTML:
     Степень защиты корпуса:
                                          </div>
            						
    						<div class="detailPageRightColumn">
                                                            
    						                <div>IP21</div>
                                						  						                          </div>
            	    </div>
                <div class="Technical pisOddRow">
              	
    																			<div class="detailPageLeftColumn" id="Frequency">
                                Частота (<i>f</i>):
                                          </div>
            						
    						<div class="detailPageRightColumn">
                                                            
    						                <div>48 … 63 Hz</div>
                                						  						                          </div>
            	    </div>
                <div class="Technical pisEvenRow">
              	
    																			<div class="detailPageLeftColumn" id="InputVoltage">
                                Входное напряжение (U<sub>in</sub>):
                                          </div>
            						
    						<div class="detailPageRightColumn">
                                                            
    						                <div>208 … 240 V</div>
                                						  						                          </div>
            	    </div>
    
    
    На выходе используя повторяющиеся границы парсинга для detailPageRightColumn и detailPageLeftColumn и макроса ONELINE получаю


    HTML:
    <div class="detailPageLeftColumn" id="EnclosureClass">Степень защиты корпуса:</div><div class="detailPageRightColumn">                                                        <div>IP21</div>
    <div class="detailPageLeftColumn" id="Frequency">Частота (<i>f</i>):</div><div class="detailPageRightColumn">                                                        <div>48 … 63 Hz</div>
    <div class="detailPageLeftColumn" id="InputVoltage">Входное напряжение (U<sub>in</sub>):</div><div class="detailPageRightColumn">                                                        <div>208 … 240 V</div>
    
    и никак пробелы лишние не могу удалить, [ALLSPACESCLEAR] почему то не срабатывает ни в внутри границ, ни в шаблоне
     
    Последнее редактирование: 1 июл 2014
  2. Kreol

    Kreol Модератор Команда форума Модератор

    Регистрация:
    6 янв 2013
    Сообщения:
    2.666
    там не пробелы, там символ неразрывный пробел.
    &nbsp; - его мнемоника.
    Для того чтобы убрать, сделайте следующее:
    1) создайте предпросмотр
    2) скопируйте 1 пробел
    3) откройте доп настройки границы и в поиск/замена вставьте тот символ, что скопировали И просто добавьте после знак замены "|"
    Если не получиться, пишите.
     
  3. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    ALLSPACESCLEAR удаляет пробелы только в конце и в начале каждой строки. В вашем примере пробелы находятся в середине каждой строки.

    Просто в макрос REPLACE пропишите такие замены:
    Код:
    [REPLACE(<div class="detailPageRightColumn"{skip}<|<div class="detailPageRightColumn"><)]<div class="detailPageLeftColumn" id="EnclosureClass">Степень защиты корпуса:</div><div class="detailPageRightColumn">                                                        <div>IP21</div>
    <div class="detailPageLeftColumn" id="Frequency">Частота (<i>f</i>):</div><div class="detailPageRightColumn">                                                        <div>48 … 63 Hz</div>
    <div class="detailPageLeftColumn" id="InputVoltage">Входное напряжение (U<sub>in</sub>):</div><div class="detailPageRightColumn">                                                        <div>208 … 240 V</div>[/REPLACE]
     
  4. Kreol

    Kreol Модератор Команда форума Модератор

    Регистрация:
    6 янв 2013
    Сообщения:
    2.666
    а еще лучше регулярными выражениями:
    Код:
    re:\s+| 
    либо
    Код:
    re:\s{1,}|
     
  5. Reset

    Reset Active Member Пользователи

    Регистрация:
    16 дек 2013
    Сообщения:
    114
    Благодарю за ответы!
    Используя Ваши советы, я сделал так
    [​IMG]
    и получил на выходе вот такую красивую табличку
    [​IMG]
    которая выводится как
    <table border=1>
    <CD_CYCLE_GRAN_ALL!>
    </table>

    Однако когда я хочу перемешать строки в этой таблице я обрамляю <SHAKESTRINGS><CD_CYCLE_GRAN_ALL!></SHAKESTRINGS>, и получаю на выходе кашу
    [​IMG]

    Cудя по логу SHAKESTRING выполняется перед ONELINE , можно это как то обойти?
     
    Последнее редактирование: 2 июл 2014
  6. Root

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

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

    Руководствуясь логикой, нужно убрать все макросы из настройки повторяющихся границ и разместить их в шаблоне вывода в порядке их срабатывания (от центра):
    Код:
    [ALLSPACESCLEAR][REPLACE(|)][ONELINE:]<SHAKESTRINGS><CD_CYCLE_GRAN_1!></SHAKESTRINGS>[/ONELINE][/REPLACE][/ALLSPACESCLEAR]
     
Similar Threads
  1. bork75
    Ответов:
    1
    Просмотров:
    2.179
  2. qazaq1
    Ответов:
    1
    Просмотров:
    1.309
  3. antigen
    Ответов:
    10
    Просмотров:
    1.518
  4. artproma
    Ответов:
    6
    Просмотров:
    1.092
  5. divenow
    Ответов:
    2
    Просмотров:
    762
Загрузка...

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