Имя: Пароль:
1C
1С v8
V8 Предобработка файла html при его сохранении.
0 sidnet1964
 
28.10.13
12:56
Прошу совета по такому поводу: необходимо обработать страницу по адресу http://sports.williamhill.com/bet/en-gb/betting/y/5/tm/Football.html

Конкретно на этой странице отображаются текущие ставки на футбольные матчи. Есть два варианта вывода –группировка по чемпионатам (по умолчанию) и общий список. Чтобы изменить способ отображения на странице html используется следующий код

<select style="font-size: 1em; height: 18px; margin-top: 1px; margin-right: -6px; width: 125px" id="changeOrder" onchange="document.site.set_pref('daily_matches',this.options[this.selectedIndex].value)">
          <option value="TYPE" selected="true">Competition</option>
          <option value="TIME" >Time</option>
        </select>

С использованием InternetExplorer.Application это выглядит так и работает.

IE = новый ComОбъект("InternetExplorer.Application");
IE.Navigate(СокрП(Чемпионат));
…    проверка готовности
Селектор = IE.Document.getElementById("changeOrder");
Селектор.selectedIndex = 1;
Селектор.onChange();
Дальше разбираю таблицу с данными
ТаблицаСДанными    = IE.Document.getElementsByTagName("table").item(0);    ///    1-я таблица страницы

Необходимо то же самое сделать средствами 1С. Пока получается только сохранить текст файла html в первоначальном виде.

HTTP        = Новый HTTPСоединение("sports.williamhill.com");
ФайлВСтроку    = HTTP.Получить("bet/en-gb/betting/y/5/tm/Football.html", Папка + Файл);

Каким образом можно изменить значение тега <select> до сохранения файла?
1 Повелитель
 
28.10.13
13:07
Знакомый реализовывал подобный функционал, с помощью регулярных выражений.
2 sidnet1964
 
28.10.13
14:51
(1) Регулярные выражения понадобятся позже. А пока надо получить второй (первый идет по умолчанию) вариант отображения страницы.
3 kokamoonga
 
28.10.13
15:07
(0) при помощи стандартного HTTPСоединение никак. Вот здесь "Селектор.onChange();" выполняется javascript средствами движка IE, чего HTTPСоединение не умеет.

Приведенный код для IE имитирует действие в браузере.

Либо регулярки, либо XPath, либо читать стандартно при помощи ЧтениеXML (ни разу не пробовал, но должно работать)