Как объединять массивы данных из разных частей WEB-документа по ключевым значениям

Допустим, в одной части WEB-страницы есть блок кода с файлами картинок цветов товара:

...
<li class="images" id="111"><img src="..."></li>
<li class="images" id="222"><img src="..."></li>
<li class="images" id="333"><img src="..."></li>
...

А в другой части есть блок кода с названиями цветов товара:

...
<li class="titles" id="111">Red</li>
<li class="titles" id="222">Green</li>
<li class="titles" id="333">Blue</li>
...

И есть задача спарсить названия цветов и файлы картинок (с сопоставлением нужного цвета с нужным файлом картинки).

Для такой задачи разработаны специальные операторы функции поиск-замены:

[CREATEARRAY][ELEMENTGRAN]начало(*)конец[/ELEMENTGRAN][KEYGRAN]начало(*)конец[/KEYGRAN]
 - [CREATEARRAY] создает в памяти массив данных (массив 1, с названиями цветов) со значениями и ключами (по ключам будет идти сопоставление данных со вторым массивом (при работе [PASTEARRAYMATCHINGKEYS]);
 
[PASTEARRAYMATCHINGKEYS][ELEMENTGRAN]начало(*)конец[/ELEMENTGRAN][KEYGRAN]начало(*)конец[/KEYGRAN][TEMPLATE]{TEXTTOPASTE} {ELEMENT}[/TEMPLATE]
 - [PASTEARRAYMATCHINGKEYS] подставляет элементы из созданного ранее массива (массив 1) к соответствующим элементам массива 2 (с файлами картинок, границы данных которого обозначены в операторе [PASTEARRAYMATCHINGKEYS])

В качестве параметров “начало” и “конец” для каждого оператора могут быть любые участки кода, которые содержат внутри себя нужные данные.

Следует понимать, что:
– Параметры “начало” и “конец” являются регистро-чувствительными;
– В параметрах “начало” и “конец” нужно экранировать переносы строк с помощью {br} и символы вертикальной черты (|) с помощью {sep}.

В [ELEMENTGRAN] мы вставляем границы всего элемента массива (вычисляются из кода WEB-документа), например, <li class="titles(*)</li> (начало и конец разделяются с помощью (*)).

В [KEYGRAN] мы вставляем границы ключа, которые вычисляются не из всего кода WEB-документа, а внутри заданного в [ELEMENTGRAN] элемента массива. Например, class="titles" id="(*)".

В [TEMPLATE] прописывается шаблон вставки, где {TEXTTOPASTE} вставит текст нужного элемента массива 1 (массива с названиями цветов), а {ELEMENT} служит для обозначения текста массива 2 (с файлами картинок). В [TEMPLATE] к операторам можно добавить любой текст/код с экранированными символами переносов строк и вертикальных черт.

При работе [PASTEARRAYMATCHINGKEYS] сопоставление элементов массива будет происходить по ключам, заданным в [KEYGRAN] у каждого массива.

Content Downloader

[CREATEARRAY][ELEMENTGRAN]<li class="titles(*)</li>[/ELEMENTGRAN][KEYGRAN]class="titles" id="(*)"[/KEYGRAN]
 
[PASTEARRAYMATCHINGKEYS][ELEMENTGRAN]<li class="images"(*)</li>[/ELEMENTGRAN][KEYGRAN]class="images" id="(*)"[/KEYGRAN][TEMPLATE][MARKER]{TEXTTOPASTE}{br}{ELEMENT}[/MARKER]{br}[/TEMPLATE]

Эти правила поиск-замены нужно прописать в окно поиск-замены для загружаемого кода (shift+ctr+r). При последующем задании границ и при парсинге вы будете работать уже с измененным кодом и сможете спарсить нужные данные (названия цветов и файлы картинок) уже из одного места через повторяющиеся границы.

1 Star2 Stars3 Stars4 Stars5 Stars (оценок: 2, средний балл: 5.00)
Loading...
Автор: admin, 21 December 2018
Рубрики: Функции обработки

Последние статьи

css.php