Hallo,
es würde sich RegEx anbieten.
Delphi-Quellcode:
uses
System.RegularExpressionsCore;
function RelativeToAbsolute (
const Html, Path, Pattern :
string) :
string;
var
r : TPerlRegEx;
begin
r := TPerlRegEx.Create;
try
r.Subject := UTF8Encode (
Html);
r.Options := [preCaseLess];
r.RegEx := Pattern;
r.Replacement := UTF8string (Path);
r.ReplaceAll;
Result :=
string (r.Subject)
finally
FreeAndNil (r)
end
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Memo2.Text := RelativeToAbsolute (Memo1.Text, '
="www.mywebsite.de/', '
="\.+\/?');
end;
würde ./, ../ oder belibig viele Punkte gefolgt von einen Slash ersetzen - sofern die Bedingung =".[.]/ erfüllt ist - mit ="www.mywebsite.de/[...].
Beispiel:
- aus <a href="../test.htm">Linktext</a> würde <a href="www.mywebsite.de/test.htm">Linktext</a>
- aus <img src="../test.jpg"> würde <img src="www.mywebsite.de/test.jpg">
- hingegen bliebe <a href="../../test.htm">Linktext</a> unverändert, passt es doch nicht auf das Suchmuster
Wenn Deine relativen Pfad variieren, dann müsstest Du das nur entsprechend im Suchmuster entsprechend abbilden und es sollte es tun.