HTML Parse <img src tagi silinmesin.

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
hakanharbeli
Üye
Mesajlar: 76
Kayıt: 01 Nis 2016 03:58

HTML Parse <img src tagi silinmesin.

Mesaj gönderen hakanharbeli »

Kod: Tümünü seç

function strip(const source:string):string;
var i, count: Integer;
    InTag: Boolean;
    P: PChar;
begin
  SetLength(Result, Length(source));
  P := PChar(Result);
  InTag := False;
  count := 0;
  for i:=1 to Length(source) do
    if InTag then
      begin
        if source[i] = '>' then InTag := False;
      end
    else
      if source[i] = '<' then InTag := True
      else
        begin
          P[count] := source[i];
          Inc(count);
        end;
  SetLength(Result, count);
end;
yukarıdaki fonksiyonla html parse işlemi gerçekleştirirken bütün tagleri sildiriyorum. fakat "<img src" taginin silinmemesini istiyorum ayrıca mantığını anlatırsanız <script> </script> taglari arasında ne varsa silinsin istiyorum bunları nasıl yapabilirim. Modifiye ettim ama bir türlü çalışmadı img src tagleri hep silindi.

Üzerine çok kafa yordum ama aşırı zaman kaybettiğim için acil çözmem gerekiyor artık bu sebeple yardımcı olursanız çok sevinirim herkese teşekkürler
Kullanıcı avatarı
loaded
Üye
Mesajlar: 122
Kayıt: 12 Eki 2010 09:45
Konum: Konya
İletişim:

Re: HTML Parse <img src tagi silinmesin.

Mesaj gönderen loaded »

Merhaba
Öncelikle değişmesini istemediğiniz tagleri farklı bir metine dönüştürmelisiniz. Ardından tagleri silmelisiniz sonrasında başta değiştirdiğiniz tagleri orjinal hallerine çevirmelisiniz. Böylece İstediğiniz değiştirme işlemini yapmış olursunuz.
Ör:
"<img src" metnini -> "zzzzzzzz" gibi ihtimal dışı bir metne çevir.
Değiştirme işlemini Yap.
"zzzzzzzz" metnini "<img src" orjinal hale geri çevir.
hakanharbeli yazdı: <script> </script> taglari arasında ne varsa silinsin istiyorum bunları nasıl yapabilirim.
Sorununuzun benzeri aşağıdaki başlıkta tartışılmış.
viewtopic.php?t=6045
SimaWB yazdı:Yeri gelmişken ben de burada basit bir kod paylaşayım bu konu ile alakalı.
Mesela elimizdeki string'i boşluk'lara göre parçalamak istiyoruz:

Kod: Tümünü seç

var
  SL: TStringList;
begin
  SL := TStringList.Create;
  try
    SL.Delimiter := ' ';//Boşluk
    SL.DelimitedText := 'ali veli';
    //Bundan sonra elimizde boşluklara göre ayrılmış halde string mevcuttur.
    //SL.Strings[0] ali 
    //SL.Strings[1] veli olmuştur
    //SL.Count parça sayısını verir
    //vs....    
  finally
    SL.Free;
  end;
end;
Tabiki boşluk yerine başka karakter de kullanılabilir.

Belki bilmeyenlerin işine yarayabilir :roll:
Siz kod parçasında boşluk yerine script kelimesini kullanmalısınız.
Kalk ve işe yarar bir şey yap! Çünkü Allah (c.c.) yeniden başlayanların yardımcısıdır.
hakanharbeli
Üye
Mesajlar: 76
Kayıt: 01 Nis 2016 03:58

Re: HTML Parse <img src tagi silinmesin.

Mesaj gönderen hakanharbeli »

mantıklı bir fikir hocam deneyeceğim teşekkür ederim
ertank
Kıdemli Üye
Mesajlar: 1651
Kayıt: 12 Eyl 2015 12:45

Re: HTML Parse <img src tagi silinmesin.

Mesaj gönderen ertank »

hakanharbeli yazdı:

Kod: Tümünü seç

function strip(const source:string):string;
var i, count: Integer;
    InTag: Boolean;
    P: PChar;
begin
  SetLength(Result, Length(source));
  P := PChar(Result);
  InTag := False;
  count := 0;
  for i:=1 to Length(source) do
    if InTag then
      begin
        if source[i] = '>' then InTag := False;
      end
    else
      if source[i] = '<' then InTag := True
      else
        begin
          P[count] := source[i];
          Inc(count);
        end;
  SetLength(Result, count);
end;
yukarıdaki fonksiyonla html parse işlemi gerçekleştirirken bütün tagleri sildiriyorum. fakat "<img src" taginin silinmemesini istiyorum ayrıca mantığını anlatırsanız <script> </script> taglari arasında ne varsa silinsin istiyorum bunları nasıl yapabilirim. Modifiye ettim ama bir türlü çalışmadı img src tagleri hep silindi.

Üzerine çok kafa yordum ama aşırı zaman kaybettiğim için acil çözmem gerekiyor artık bu sebeple yardımcı olursanız çok sevinirim herkese teşekkürler
Merhaba, örnek HTML paylaşabilir misiniz?
hakanharbeli
Üye
Mesajlar: 76
Kayıt: 01 Nis 2016 03:58

Re: HTML Parse <img src tagi silinmesin.

Mesaj gönderen hakanharbeli »

ertank yazdı:
hakanharbeli yazdı:

Kod: Tümünü seç

function strip(const source:string):string;
var i, count: Integer;
    InTag: Boolean;
    P: PChar;
begin
  SetLength(Result, Length(source));
  P := PChar(Result);
  InTag := False;
  count := 0;
  for i:=1 to Length(source) do
    if InTag then
      begin
        if source[i] = '>' then InTag := False;
      end
    else
      if source[i] = '<' then InTag := True
      else
        begin
          P[count] := source[i];
          Inc(count);
        end;
  SetLength(Result, count);
end;
yukarıdaki fonksiyonla html parse işlemi gerçekleştirirken bütün tagleri sildiriyorum. fakat "<img src" taginin silinmemesini istiyorum ayrıca mantığını anlatırsanız <script> </script> taglari arasında ne varsa silinsin istiyorum bunları nasıl yapabilirim. Modifiye ettim ama bir türlü çalışmadı img src tagleri hep silindi.

Üzerine çok kafa yordum ama aşırı zaman kaybettiğim için acil çözmem gerekiyor artık bu sebeple yardımcı olursanız çok sevinirim herkese teşekkürler
Merhaba, örnek HTML paylaşabilir misiniz?
ertan hocam halletim stringreplace ve üstadın öneriisni birleştirince hallettim teşekkür ederim ilgniz için
Cevapla