Есть html файл, который сохранен локально на диске и его URL в инете. Необходимо получить все адреса(src) для тега img. Проблема в том, что адреса, которые начинаются не с
http://.......возвращают относительный путь начиная с
file:///DISK:/... т.е. относительно того пути в где сохранен файл…
Как же получить правильный адрес?
Для получения адресов(src) картинок использую IHTMLDocument2 пробывал загрузку и через CreateURLMoniker и Doc as IPersistFile).load('c:\test\main.htm',0);
Не хотелось бы писать свой анализатор url т.к. сердце чувствует, что есть штатные средства…. Кодирую на паскале….
Doc:=CoHTMLDocument.Create as IHtmlDocument2;
CreateBindCtx(0 , Bc);
ws:='c:\test\main.htm';
// адрес в инете wss:='
http://www.micro.com/main.htm';
CreateURLMoniker(nil, PWideChar(ws), Mnk);
Doc.QueryInterface(IID_IPersistMoniker, PMnk);
PMnk.Load(false, Mnk, Bc, STGM_READ);
// (Doc as IPersistFile).load('c:\test\main.htm',0);
Здравствуйте, ziox, Вы писали:
Z>Есть html файл, который сохранен локально на диске и его URL в инете. Необходимо получить все адреса(src) для тега img. Проблема в том, что адреса, которые начинаются не с http://.......возвращают относительный путь начиная с file:///DISK:/... т.е. относительно того пути в где сохранен файл…
Z>Как же получить правильный адрес?
Z>Для получения адресов(src) картинок использую IHTMLDocument2 пробывал загрузку и через CreateURLMoniker и Doc as IPersistFile).load('c:\test\main.htm',0);
Z>Не хотелось бы писать свой анализатор url т.к. сердце чувствует, что есть штатные средства…. Кодирую на паскале….
Z> Doc:=CoHTMLDocument.Create as IHtmlDocument2;
Z> CreateBindCtx(0 , Bc);
Z> ws:='c:\test\main.htm';
Z> // адрес в инете wss:='http://www.micro.com/main.htm';
Z> CreateURLMoniker(nil, PWideChar(ws), Mnk);
Z> Doc.QueryInterface(IID_IPersistMoniker, PMnk);
Z> PMnk.Load(false, Mnk, Bc, STGM_READ);
Z> // (Doc as IPersistFile).load('c:\test\main.htm',0);
все твои html-файлы должны лежать в каком-нибудь Apache, поэтому все абсолютные file-пути будут начитаться с чего-нибудь $HTDOCS_PATH/path/to/file.html. Удали из строки вот это начало $HTDOCS_PATH и вставь вместо него
http://your-domain:port/path/to/file.html
или чего ты хочешь, я плохо понимать вас.
есть стандартные методы для этой задачи, но только они должны вызываться в том же контексте, что и html-файлы, и тем более для delphi я не знаю.
Здравствуйте, ziox, Вы писали:
Z>Есть html файл, который сохранен локально на диске и его URL в инете. Необходимо получить все адреса(src) для тега img. Проблема в том, что адреса, которые начинаются не с http://.......возвращают относительный путь начиная с file:///DISK:/... т.е. относительно того пути в где сохранен файл…
Z>Как же получить правильный адрес?
Z>Для получения адресов(src) картинок использую IHTMLDocument2 пробывал загрузку и через CreateURLMoniker и Doc as IPersistFile).load('c:\test\main.htm',0);
Z>Не хотелось бы писать свой анализатор url т.к. сердце чувствует, что есть штатные средства…. Кодирую на паскале….
Попробуй добавить в HTMLDocument тег BASE
Здравствуйте! Вы писали:
А>Попробуй добавить в HTMLDocument тег BASE
Вот СПАСИБО ПОЛУЧИЛОСЬ!!!!!
все так просто!