AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Jabber XMLStream parsen

Ein Thema von Luckie · begonnen am 20. Feb 2006 · letzter Beitrag vom 23. Feb 2006
 
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#20

Re: Jabber XMLStream parsen

  Alt 23. Feb 2006, 14:32
Hallo Michael,

das Problem hast du richtig erkannt, die Lösung ist denkbar einfach: Nicht das Iterator-Interface global speichern, sondern das Wurzel-Element.

Delphi-Quellcode:
procedure TForm1.OnJabberMessage(Sender: TObject; const Msg: IJabberMsg; const Tag: IXMLTag);
begin
  self.MsgTag := Tag;
  // ...
end;
Jetzt kannst du jederzeit GetTagValue(MsgTag, 'color') rufen und wirst auch gehört. Alternativ geht auch sowas:

Delphi-Quellcode:
function ParseStr(var s: string; delimiters: string; purge: boolean = true): string;
var
  i: integer;
begin
  i := 0;
  while (i < Length(s)) and (Pos(s[Succ(i)], delimiters) = 0) do
    Inc(i);
  Result := Copy(s, 1, i);
  Delete(s, 1, i + Ord(purge));
end;

function TDemoForm.GetData(tag: IXMLTag; path: String): String;
var
  ti: IXMLTagIterator;
  q: String;
begin
  while Assigned(tag) and (path <> '') do
  begin
    q := ParseStr(path, '/');
    ti := tag.QueryTag(q);
    tag := ti.Next;
  end;
  if Assigned(tag)
    then Result := tag.Data
    else Result := '';
end;

procedure TDemoForm.QueryDataActionExecute(Sender: TObject);
begin
  ShowMessage(GetData(MsgTag, 'foobar/color'));
end;
Grüße vom marabu
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz