Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Klasse HTMLDocument

  Alt 21. Mai 2014, 19:41
Moin Zusammen,

hier mal ein kleines Beispiel.
(es bezieht sich auf diesen Thread: DIV classes mit getElementByID auslesen)


Delphi-Quellcode:
uses Clipbrd,csHTMLTypes;
{$R *.dfm}

procedure TForm1.btn1Click(Sender: TObject);

var
  LDOC : TcsHTMLDocument;
  iPos : Integer;

  sName : string;
  sDate : string;
  sGroup : string;
  sText : string;

  iPreStart : Integer;
  iPreEnd : Integer;

  i : Integer;

begin
  LDOC := TcsHTMLDocument.Create;
  try
    LDOC.Content := Clipboard.AsText;
    iPos := 0;
    sDate := 'Not Found';
    sName := 'Not Found';
    sGroup := 'Not Found';
    sText := 'Not Found';
    while True do begin
      iPos := LDOC.FindElementWithAttribValue(hetStartTag,'div','class','FFT_header',iPos);
      if iPos = -1 then Break;
      inc(iPos);
      sDate := LDOC.Element[iPos].Name;
      iPos := LDOC.FindElementWithAttribValue(hetStartTag,'span','class','FFT_header_for_name',iPos);
      if iPos = -1 then Break;
      Inc(iPos);
      sName := LDOC.Element[iPos].Name;
      iPos := LDOC.FindElementWithAttribValue(hetStartTag,'span','class','FFT_header_group',iPos);
      if iPos = -1 then Break;
      inc(iPos);
      sGroup := LDOC.Element[iPos].Name;
      iPos := LDOC.FindElementWithAttribValue(hetStartTag,'div','class','fftText',iPos);
      if iPos = -1 then Break;
      if not LDOC.FindMatchingTagsBetween('pre',iPos,LDOC.Count-1,iPreStart,iPreEnd) then Break;
      sText := '';
      for i := iPreStart to iPreEnd do begin
        if LDOC.Element[i].ElementType in [hetContent,hetContentPre] then begin
          sText := sText + LDOC.Element[i].Name;
        end else begin
          if LDOC.Element[i].ElementType = hetStandaloneTag then begin
            if LDOC.Element[i].Name = 'brthen begin
              sText := sText+#13#10;
            end;
          end;
        end;
      end;
      ShowMessage('Datum: '+sDate+#13#10+'Name: '+sName + #13#10+'Gruppe: '+sGroup+#13#10+'Text: '+sText);
      sDate := 'Not Found';
      sName := 'Not Found';
      sGroup := 'Not Found';
      sText := 'Not Found';
    end;
  finally
    LDOC.Free;
  end;
  Close;
end;
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat