Помогите создать DOM HTML под Delphi
Помогите примером создания DOM HTML в Delphi стоковыми методами, использую RadStudio 10.4/11.3 версий. Делал пробы парсинга на JavaScript и хотелось бы чтобы получилось подобное и на Delphi:
const response = await fetch( url, { method: 'GET', headers: { 'Accept': '*/*' } });
if(response.ok && response.status===200) {
text = response.text();
}
...
const html = JSON.parse(text).contents;
const doc = new DOMParser().parseFromString(html, 'text/html');
const wrapper = doc.getElementById('wrapper');
if(wrapper) {
profile.avatar = getAvatar(doc);
document.getElementById('Avatar').src = profile.avatar;
const state = JSON.parse(wrapper.getElementsByTagName('script').item(0).innerHTML);
...
}
где цель: получить объект DOC, по которому я дальше простыми методами смогу делать обход и доставать/изменять его ноды.
Ознакомившись с примерами по запросам я так и не понял как это сделать, самый близкий по достижению цели был пример с DOM XML, но у меня другой тип документа. Я настроил SSL HTTP запрос к странице, подобрал версию протокола, получаю строковое представление HTML страницы:
function TRequest.GetWebPage(const url: string): string;
var
agent: string;
HTTP: TIdHTTP;
begin
agent := Requests.GetUserAgent();
try
HTTP := TIdHTTP.Create;
Memo.Lines.Add('UserAgent: '+agent);
Memo.Lines.Add('URL: '+url);
Memo.Lines.Add('------------------------------');
Memo.Lines.Add('');
HTTP.IOHandler := idSSL;
HTTP.HandleRedirects := True;
HTTP.Request.Accept := 'text/html';
HTTP.Request.CacheControl := 'no-cache';
HTTP.Request.ContentType := 'text/html';
HTTP.Request.UserAgent := agent;
Result := HTTP.Get(url).Trim;
finally
HTTP.Free;
end;
end;
но создать из нее документ не получается стоковым методом.