Einzelnen Beitrag anzeigen

Volker Z.

Registriert seit: 3. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#2

AW: Relative Referenzen in HTML-Quellcode in absolute Referenzen umwandeln?

  Alt 27. Mär 2013, 05:27
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.
Volker Zeller
  Mit Zitat antworten Zitat