Имя: Пароль:
1C
1С v8
ЭлементHTML - как из него получить полный HTML-текст?
,
0 zyto
 
06.02.17
22:52
Делаю парсинг сайта, читаю через ПостроительDOM.
Добрался до нужного элемента, в нём содержится описание товара.
Как получить это описание в формате HTML, ну т.е. что бы сохранились оформление, стили и т.д.
Надо получить что-то в этом духе:
<p>Первый <strong>Абзац</strong></p>
<p>Второй абзац</p>

Если я сделаю ЭлементHTML.ТекстовоеСодержимое - то получу "чистый" текст, без разметки, типа так:
Первый Абзац
Второй абзац

Как получить полный код?
1 Лефмихалыч
 
06.02.17
22:55
ТекстHTML?
2 zyto
 
06.02.17
22:57
(1)Вроде нет такого ни свойства ни метода у ЭлементHTML, либо я не правильно понял
3 Лефмихалыч
 
06.02.17
22:57
мне лень конфигуратор открывать :)
4 jsmith82
 
06.02.17
23:00
innerHTML?
5 zyto
 
06.02.17
23:03
(4)Вот надо что-то в этом духе, только для ЭлементHTML (innerHTML вроде работает для ПолеHTMLДокумента или что-то в этом духе, когда идёт работа с СОМ-объектом браузера)
6 Юрий Лазаренко
 
06.02.17
23:03
(0) Ешкин кот, ну так тормозни отладчиком код в нужной строке и исследуй свой элемент через F9. На английском это свойство элемента называется как сказано в (4).
7 Юрий Лазаренко
 
06.02.17
23:04
Нет, оно работает для любого элемента DOM.
8 Юрий Лазаренко
 
06.02.17
23:04
(7) -> (5)
9 zyto
 
06.02.17
23:05
(7)Если бы всё было так просто я бы не полез на форум :)

http://screenshot.su/img/89/49/a8/8949a81ffc9cc0ecb52a6db6632e712b.jpg
10 Юрий Лазаренко
 
06.02.17
23:09
(9) Сорян, был неправ. Возможно, это метод и в отладчике он не виден.
Но DOM есть DOM, и этот метод точно есть и точно у каждого элемента. Но я сейчас на планшете, в конфе посмотреть не могу.
11 Юрий Лазаренко
 
06.02.17
23:15
ПолучитьТекст() попробуй
12 zyto
 
06.02.17
23:21
Похоже нативно 1С такого не умеет, но можно выкрутится так:

Функция innerHTML(ЭлементHTML)
   ЗаписьDOM = Новый ЗаписьDOM;
   ЗаписьHTML = Новый ЗаписьHTML;
   ЗаписьHTML.УстановитьСтроку();
   Для Каждого Стр из ЭлементHTML.ДочерниеУзлы Цикл
      ЗаписьDOM.Записать(Стр, ЗаписьHTML);
   КонецЦикла;
   Возврат ЗаписьHTML.Закрыть();
КонецФункции
13 zyto
 
06.02.17
23:22
Всем спасибо за помощь!

Если кто подскажет более "красивое" решение буду благодарен
14 Юрий Лазаренко
 
06.02.17
23:27
(13) Вот, тоже только что прочитал, что 1С эти методы обрезала. Даже предположить такое не мог, потому что при разработке на яваскрипте этим пользоваться приходится очень часто. Могли бы сделать хотя бы для чтения.
Вот нашел вариант решения в интернете:
http://oparin.info/1c/innerhtml-i-outerhtml-dlya-elementov-dokumenthtml
15 zyto
 
06.02.17
23:28
(14)Угу, я тоже там нашёл :) благодарю за помощь!
16 zyto
 
06.02.17
23:28
...в моём случае правильнее использовать outerHTML...
17 Юрий Лазаренко
 
06.02.17
23:29
(15) Да не за что, я ж и не помог по факту. Наоборот - сам узнал что-то новое.
Основная теорема систематики: Новые системы плодят новые проблемы.