Имя: Пароль:
1C
1С v8
Как разобрать текст письма HTML?
0 Добрый хачик
 
12.03.14
10:15
средствами 1с подключаюсь к почтовому ящику и забираю письма (штатный механизм УПП 1.3)

При получении текста письма идет обращение к "ИнтернетТекстыПочтовогоСообщения", там может быть несколько текстов в виде просто текста и в виде HTML. Так вот, если есть текст "ПростоТекст" то все норм. Но некоторые пользователи отправляют письма с мобильных устройств, и вот в них письмах текст есть только в формате HTML.

Как из этого кода вытащить сам текст письма???

<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml"; xmlns="http://www.w3.org/TR/REC-html40">;
<head>
<meta http-equiv="Content-Type" content="text/html; charset=koi8-r">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
    {font-family:Calibri;
    panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
    {margin:0cm;
    margin-bottom:.0001pt;
    font-size:12.0pt;
    font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
    {mso-style-priority:99;
    color:blue;
    text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
    {mso-style-priority:99;
    color:purple;
    text-decoration:underline;}
p
    {mso-style-priority:99;
    mso-margin-top-alt:auto;
    margin-right:0cm;
    mso-margin-bottom-alt:auto;
    margin-left:0cm;
    font-size:12.0pt;
    font-family:"Times New Roman","serif";}
span.EmailStyle18
    {mso-style-type:personal-compose;
    font-family:"Calibri","sans-serif";}
..MsoChpDefault
    {mso-style-type:export-only;
    font-size:10.0pt;}
@page WordSection1
    {size:612.0pt 792.0pt;
    margin:2.0cm 42.5pt 2.0cm 3.0cm;}
div.WordSection1
    {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p><span lang="RU" style="font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;">Из &nbsp; 000 Доларов<o:p></o:p></span></p>
<p><span style="font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;">##- Please type your reply above this line -##</span>
<o:p></o:p></p>
</div>
</body>
</html>
1 Ksandr
 
12.03.14
10:18
ЧтениеXML например заюзать.
2 Wobland
 
12.03.14
10:20
(1) издалека и правда похоже на XML
3 Wobland
 
12.03.14
10:21
HTML=Новый COMОбъект("HTMLFile") ?
4 rozer76
 
12.03.14
10:21
какой же это xml?... это ж html и читать с <body> до </body>
5 Wobland
 
12.03.14
10:23
а что такое ЧтениеHTML?
6 rozer76
 
12.03.14
10:26
(5)

ЧтениеHTML (HTMLReader)
Методы:

Закрыть (Close)
ОткрытьФайл (OpenFile)
УстановитьСтроку (SetString)

Конструкторы:

По умолчанию

Описание:

Предназначен для последовательного чтения HTML данных из файла или строки. Автоматически обрабатывает объявление HTML-документа и распознает тип кодировки файла.
Объект должен использоваться в паре с ПостроительDOM.

Доступность:

Тонкий клиент, сервер, толстый клиент, внешнее соединение.
Пример:

ЧтениеHTML = Новый ЧтениеHTML;
ЧтениеHTML.УстановитьСтроку("<html><head><title>Тест</title></head><body><a href='http://www.1c.ru'>;Компания 1С</a></html>");
ПостроительDOM = Новый ПостроительDOM;
ДокументHTML = ПостроительDOM.Прочитать(ЧтениеHTML);
7 rozer76
 
12.03.14
10:27
(6) -> (0) :)
8 Добрый хачик
 
12.03.14
10:32
Благодарствую!
9 Добрый хачик
 
12.03.14
10:33
если кому надо будет, вот простой код:

    Текст = ПолучитьМакет("Макет");
    Чтение = Новый ЧтениеHTML;
    Чтение.УстановитьСтроку(Текст.ПолучитьТекст());
    
    ПостроительDOM = Новый ПостроительDOM;
    ДокументHTML = ПостроительDOM.Прочитать(Чтение);
    ТекстПисьма = ДокументHTML.Тело.ТекстовоеСодержимое;