Имя: Пароль:
1C
1С v8
Как работать с html документом?
0 breezee
 
16.01.16
23:29
Как работать с html документом - как его полностью прочитать, или хотя бы как скопировать весь текст из него и работать как со строкой? Подскажите, где методическую информацию взять, в СП нет такого. Там 3 метода без общего примера.
1 arccos6pi
 
16.01.16
23:34
(0) ЧтениеHTML + ПостроительDOM
или читать как текстовый файл
2 breezee
 
17.01.16
00:35
Не могу найти примеры как обходить ДеревоDOM
Вот у меня есть документ HTML. Создаю обход. Как с ним дальше работать?
Обход = обДокументHTML.СоздатьОбходДерева(обДокументHTML.Тело);
Если конкретней - мне нужно найти тэг  <span class="Quest">
Вложенные в него <span class="Ans">, все что вложено в них и среди них найти еще элемент в теге <b></b>
3 breezee
 
17.01.16
00:36
Да, платформа 8.3
4 breezee
 
17.01.16
00:44
ап
5 breezee
 
17.01.16
00:57
Обход = обДокументHTML.СоздатьОбходДерева(обДокументHTML.Тело);
тУзел = Обход.ТекущийУзел;
Пока тУзел <> Неопределено цикл
тУзел = Обход.СледующийУзел();
КонецЦикла;

Я как-то неправильно понял как осуществить обход? У мня весь текст в 1 узле, без разбития по тегам. В общем - можно как-то получить весь тест из html документа - с тегами и прочим? Просто так, как если бы его открыть в текстовом редакторе?
6 Asmody
 
17.01.16
00:57
7 Asmody
 
17.01.16
00:59
8 breezee
 
17.01.16
01:10
(7)
Пишет что ВычислитьВыражениеXPath - метод не обнаружен.
Да и вообще я ничерта не понял. Почему у всех узлов в тексте вообще весь текст, у все узлов - весь текст html документа. Ничерта не понимаю. Можно как-то просто скопировать вообще весь текст из html чтобы, он выглядел как сам html
<head>
<body>
   ...
<body>
</head>
В строку. Я так понял что проще с ним как со строкой будет рабоать
9 Asmody
 
17.01.16
01:14
(8) Код из (7) работает: я так отчеты мегафоновские разбираю.
10 breezee
 
17.01.16
01:20
(9) Ок, в любом случае мне проще строкой. У меня цикл по всем классам, потом вложенный по элементам класса и нужно отдельно выделить элемент, выделенный <b></b> HTML я так понял выглядит не так как её себе представлял - т.е. это не текст с тегами классов и прочими тегами, а каки-то узлы. В общем -проще работать со строкой текста из HTML, вот только как её получить я не понимаю
11 breezee
 
17.01.16
01:34
Пишет
Ошибка в выражении XPath
Invalid expression
Я же правильно понимаю что чтобы получить все между тегов я должен указать открывающую и закрывающую строку и между ними /../?
ЧтениеHTML = Новый ЧтениеHTML;
    ЧтениеHTML.ОткрытьФайл(ИмяФайла, "UTF-8");
    ПостроительDOM = Новый ПостроительDOM;
    ДокументHTML = ПостроительDOM.Прочитать(ЧтениеHTML);
    ЗаписьXML = Новый ЗаписьXML;
    ЗаписьXML.УстановитьСтроку("UTF-8");
    ЗаписьDOM = Новый ЗаписьDOM;
    ЗаписьDOM.Записать(ДокументHTML.Тело, ЗаписьXML);
    ЧтениеXML = Новый ЧтениеXML;
    ЧтениеXML.УстановитьСтроку(ЗаписьXML.Закрыть());
    ДокументDOM = ПостроительDOM.Прочитать(ЧтениеXML);
    Разименовыватель = Новый РазыменовательПространствИменDOM(ДокументDOM);
    ВыражениеXPath =  "//span class=""BOvopros""/../</span>|//span class=""BOotvet""/../</span>";
12 Asmody
 
17.01.16
01:52
(11) Неправильно.
Отлаживать xpath можно вот этим http://catalog.mista.ru/public/352879/
Вот тут http://catalog.mista.ru/public/280340/ написано про синтаксис
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой