Delphi Html Parsing Hakkında
-
Merhaba Arkadaşlar,
javada ve php de kullandığım bazı classlarda
$renk = $rnk->('div[id=renkler]',0);
gibi bir kodla bulduğu div elementi ve içinde id tagı varsa ve bu tag renklere eşitse o divin içeriğini $renk değişkenine aktarır.
delphide bunu yapabilecek bir komponent var mı? hazır birşey olursa güzel olur olmazsa oturup yazmaktan başka çare yok ama uğraşmak istemiyorum bununla bilen varsa yardımlarınızı bekliyorum...
-
Hmm hocam regex ile olmazmı?
-
regex yapılabilir. fakat bu her web sitesi için yeniden regex demek olur.
akşam java ve php deki class ları inceleyip delphide o işlemlere uygun birşey yazmayı deniyecem. inşallah güzel bir sınıf çıkarırım.
-
Function ArayiAl(text, ilk, son:String ): WideString;
begin
Delete(Text, 1, pos(ilk, Text) + Length(ilk)-1);
Result := Copy(Text, 1, Pos(Son, Text)-1);
end;
Geçici Çözüm
-
Bu fonksiyonları kullanabilirsin,
function ExtractTextInsideGivenTagEx(const Tag, Text:string):string;var StartPos1, StartPos2, EndPos: integer; i: Integer;begin result :=''; StartPos1 := Pos('<'+ Tag, Text); EndPos := Pos('+ Tag +'>', Text); StartPos2 :=0;for i := StartPos1 + length(Tag)+1to EndPos doif Text[i]='>'thenbegin StartPos2 := i +1; break;end;if(StartPos2 >0)and(EndPos > StartPos2)then result := Copy(Text, StartPos2, EndPos - StartPos2);end;
kipnos tarafından 27/May/14 12:12 tarihinde düzenlenmiştir
Örnek kullanım
;ExtractTextInsideGivenTagEx
('tag','blah blah blahtext I want to keepblah blah blah')
Sonuç Çıktısı:text I want to keep
-
kipnos bunu yazdı
Bu fonksiyonları kullanabilirsin,
function ExtractTextInsideGivenTagEx(const Tag, Text:string):string;var StartPos1, StartPos2, EndPos: integer; i: Integer;begin result :=''; StartPos1 := Pos('<'+ Tag, Text); EndPos := Pos('+ Tag +'>', Text); StartPos2 :=0;for i := StartPos1 + length(Tag)+1to EndPos doif Text[i]='>'thenbegin StartPos2 := i +1; break;end;if(StartPos2 >0)and(EndPos > StartPos2)then result := Copy(Text, StartPos2, EndPos - StartPos2);end;
Örnek kullanım
;ExtractTextInsideGivenTagEx
('tag','blah blah blahtext I want to keepblah blah blah')
Sonuç Çıktısı:text I want to keep
benim amacım gelişmiş bir komponent ti sorunumu çözmüştüm. benimkinden daha gelişmiş bir fonksiyon güzelmiş ama tam olarak istediğim değil neyse şu oyunu bitireyim bi class yazacam kesin bu iş için