Перебираем HtmlElementCollection и проверяем регуляркой

Serg24

Client
Регистрация
16.12.2017
Сообщения
51
Благодарностей
4
Баллы
8
Привет,
долго ломал голову, нашел несколько решений, но уж очень они костылями попахивают))

Есть HtmlElementCollection
PHP:
HtmlElementCollection Options = instance.ActiveTab.FindElementByAttribute("div", "class", "table-type-1", "regexp","1").FindChildrenByAttribute("div","class","table-cell","regexp");
    project.SendInfoToLog(Options.Count.ToString(),true);
    foreach(HtmlElement Option in Options)
    {
        project.SendInfoToLog(Option.GetAttribute("innerhtml").Trim(),true);
    }
Вот что получается

характеристика1
<p...><a>значение1</a></p>
характеристика2
<p...>значение2</p>
характеристика3
<p...><a>значение3</a></p>
характеристика4
значение4 (уже без тегов!)

То есть вторая строка может быть как с тегами, так и без.

Задача создать массив типа
характеристика1=>значение1;
характеристика2=>значение2;
характеристика3=>значение3;

Пока только придумал каждый элемент проверять на определенный тег и удалять его регуляркой
потом писать все в строку с разделителем типа || и потом уже загонять в массив)).

Уверен, что есть решение получше)
 

Serg24

Client
Регистрация
16.12.2017
Сообщения
51
Благодарностей
4
Баллы
8
аж неудобно)
PHP:
string opt = Option.GetAttribute("innerhtml").Trim();
opt = System.Text.RegularExpressions.Regex.Replace(opt, @"<[^>]*>", "");
Но вопрос, по загону в массив остается открытым.

Конечная задача: напарсить товаров с характеристиками для создания файла импорта в магазин типа ОК или ВП.
 

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