Einzelnen Beitrag anzeigen

marabu

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

Re: Jabber XMLStream parsen

  Alt 21. Feb 2006, 10:22
Und ich habe immer noch keinen Test-Server am Laufen, aber schau mal:

Delphi-Quellcode:
procedure GetTags(iter: IXMLIteratorEx; s: TStrings);
var
  xn: IXMLNode;
begin
  while iter.HasNext do
  begin
    xn := iter.Next;
    if xn.IsTag then with xn as IXMLTag do
    begin
      s.Add(Name);
      GetTags(children, s);
    end;
  end;
end;

procedure TDemoForm.ButtonClick(Sender: TObject);
var
  xt: IXMLTag;
  s: TStringList;
begin
  s := TStringList.Create;
  xt := Jabber.CreateXMLTag;
  with xt do
  begin
    Name := 'message';
    PutAttrib('id', 'JCOM_2');
    PutAttrib('to', 'mp@datawerk.de');
    PutAttrib('from', 'mp-test@datawerk.de/DWJabberClient');
    with AddTag('foobar') do
    begin
      PutAttrib('type', 'mp-extra-tag');
      AddBasicTag('color', 'clOlive');
    end;
    ShowMessage(xml);
    GetTags(children, s);
    ShowMessage(s.Text);
    s.Free;
  end;
end;
Ich habe deine Message nachgebaut und dann wieder analysiert. Da ich noch nicht weiß, ob die Methode Query() XPath expressions unterstützt, bin ich erstmal auf die property children ausgewichen. Klappt!

marabu
  Mit Zitat antworten Zitat