Думал использовать 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.