Думал использовать MSHTML - текст загрузил, а как преобразовать не знаю. Думал что может приведение типа ( xdoc := doc.documentElement as IXMLDOMElement ) не помогло, интерфейс не поддерживается.
Видимо лучший вариант - сделать обход дерева элементов doc.documentElement: IHTMLElement - на сколько я понял корневой элемент, т.е. <HTML>, а как пройтись по его потомкам не понятно: есть свойство children, но оно IDispatch?..
// Delphi
- Код: Выделить всё
- program test;
 {$APPTYPE CONSOLE}
 uses
 Windows, SysUtils, Variants, ActiveX, MSHTML;
 function AnsiToDos(const S: string): string;
 begin
 SetLength(Result, Length(S));
 CharToOem(@S[1], @Result[1]);
 end;
 procedure do_test;
 var doc: DispHTMLDocument;
 begin
 doc := CoHTMLDocument.Create;
 doc.write('<html>');
 writeln(doc.documentElement.outerHTML);
 end;
 begin
 CoInitialize(nil);
 try
 writeln('MSHTML example');
 do_test;
 writeln;
 writeln('ok');
 except
 on E: Exception do
 begin
 writeln;
 writeln(E.ClassName, ': ', AnsiToDos(E.Message));
 end;
 end;
 readln;
 CoUninitialize;
 end.




