Имя: Пароль:
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 (ни разу не пробовал, но должно работать)
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший