AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi PHP Array über Soap verarbeiten...
Thema durchsuchen
Ansicht
Themen-Optionen

PHP Array über Soap verarbeiten...

Ein Thema von kingflo · begonnen am 30. Okt 2006 · letzter Beitrag vom 31. Okt 2006
Antwort Antwort
kingflo

Registriert seit: 21. Jun 2004
Ort: Hamburg
502 Beiträge
 
Delphi 7 Professional
 
#1

PHP Array über Soap verarbeiten...

  Alt 30. Okt 2006, 13:11
Hallo...
Ich habe mal wieder nen Problem, und zwar habe einen Soap Client, der auf einen PHP Soap Service (ohne WSDL) zugreift.

Die PHP funktion getBuddyList liefert mir ein PHP Array zurück und ich weiß leider nicht, wie ich das in delphi jetzt verarbeiten kann.
Wenn ich bei der Funktionsdeklaration in der invoke als result z.B wideString angebe

function getBuddyList(sessionID:string;status:string): WideString; stdcall; kommt es folgendermaßen zurück.

<item xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns2:Map"><item><key xsi:type="xsd:string">UserID</key><value xsi:type="xsd:string">10000206</value></item><item><key xsi:type="xsd:string">UserName</key><value xsi:type="xsd:string">fluffy</value></item><item><key xsi:type="xsd:string">firstname</key><value xsi:type="xsd:string">Thomas</value></item><item><key xsi:type="xsd:string">lastname</key><value xsi:type="xsd:string">Memenga</value></item><item><key xsi:type="xsd:string">country</key><value xsi:type="xsd:string">DE</value></item><item><key xsi:type="xsd:string">city</key><value xsi:type="xsd:string">Springe</value></item></item><item xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns2:Map"><item><key xsi:type="xsd:string">UserID</key><value xsi:type="xsd:string">10000201</value></item><item><key xsi:type="xsd:string">UserName</key><value xsi:type="xsd:string">kingflo</value></item><item><key xsi:type="xsd:string">firstname</key><value xsi:type="xsd:string">Florian</value></item><item><key xsi:type="xsd:string">lastname</key><value xsi:type="xsd:string">Gilde</value></item><item><key xsi:type="xsd:string">country</key><value xsi:type="xsd:string">DE</value></item><item><key xsi:type="xsd:string">city</key><value xsi:type="xsd:string">Hamburg</value></item></item><item xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns2:Map"><item><key xsi:type="xsd:string">UserID</key><value xsi:type="xsd:string">10000213</value></item><item><key xsi:type="xsd:string">UserName</key><value xsi:type="xsd:string">mickey</value></item><item><key xsi:type="xsd:string">firstname</key><value xsi:type="xsd:string">Michael</value></item><item><key xsi:type="xsd:string">lastname</key><value xsi:type="xsd:string">Kock</value></item><item><key xsi:type="xsd:string">country</key><value xsi:type="xsd:string">DE</value></item><item><key xsi:type="xsd:string">city</key><value xsi:type="xsd:string">Hamburg</value></item></item><item xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns2:Map"><item><key xsi:type="xsd:string">UserID</key><value xsi:type="xsd:string">10000207</value></item><item><key xsi:type="xsd:string">UserName</key><value xsi:type="xsd:string">Sam75</value></item><item><key xsi:type="xsd:string">firstname</key><value xsi:type="xsd:string">Kock</value></item><item><key xsi:type="xsd:string">lastname</key><value xsi:type="xsd:string">Sandra</value></item><item><key xsi:type="xsd:string">country</key><value xsi:type="xsd:string">DE</value></item><item><key xsi:type="xsd:string">city</key><value xsi:type="xsd:string">Hamburg</value></item></item><item xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns2:Map"><item><key xsi:type="xsd:string">UserID</key><value xsi:type="xsd:string">10000200</value></item><item><key xsi:type="xsd:string">UserName</key><value xsi:type="xsd:string">soularis</value></item><item><key xsi:type="xsd:string">firstname</key><value xsi:type="xsd:string">Stefan</value></item><item><key xsi:type="xsd:string">lastname</key><value xsi:type="xsd:string">Schulze</value></item><item><key xsi:type="xsd:string">country</key><value xsi:type="xsd:string">DE</value></item><item><key xsi:type="xsd:string">city</key><value xsi:type="xsd:string">Hamburg</value></item></item><item xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns2:Map"><item><key xsi:type="xsd:string">UserID</key><value xsi:type="xsd:string">10000205</value></item><item><key xsi:type="xsd:string">UserName</key><value xsi:type="xsd:string">teichlotte</value></item><item><key xsi:type="xsd:string">firstname</key><value xsi:type="xsd:string">Iris</value></item><item><key xsi:type="xsd:string">lastname</key><value xsi:type="xsd:string">Teichmann</value></item><item><key xsi:type="xsd:string">country</key><value xsi:type="xsd:string">DE</value></item><item><key xsi:type="xsd:string">city</key><value xsi:type="xsd:string">Stocksee</value></item></item><item xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns2:Map"><item><key xsi:type="xsd:string">UserID</key><value xsi:type="xsd:string">10000210</value></item><item><key xsi:type="xsd:string">UserName</key><value xsi:type="xsd:string">wbeeck</value></item><item><key xsi:type="xsd:string">firstname</key><value xsi:type="xsd:string">Wilfried</value></item><item><key xsi:type="xsd:string">lastname</key><value xsi:type="xsd:string">Beeck</value></item><item><key xsi:type="xsd:string">country</key><value xsi:type="xsd:string">DE</value></item><item><key xsi:type="xsd:string">city</key><value xsi:type="xsd:string">Wendtorf</value></item></item><item xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns2:Map"><item><key xsi:type="xsd:string">UserID</key><value xsi:type="xsd:string">10000204</value></item><item><key xsi:type="xsd:string">UserName</key><value xsi:type="xsd:string">yutha</value></item><item><key xsi:type="xsd:string">firstname</key><value xsi:type="xsd:string">Jutta</value></item><item><key xsi:type="xsd:string">lastname</key><value xsi:type="xsd:string">Liwanetz</value></item><item><key xsi:type="xsd:string">country</key><value xsi:type="xsd:string">DE</value></item><item><key xsi:type="xsd:string">city</key><value xsi:type="xsd:string">Hamburg</value></item></item>
Florian Gilde
  Mit Zitat antworten Zitat
kingflo

Registriert seit: 21. Jun 2004
Ort: Hamburg
502 Beiträge
 
Delphi 7 Professional
 
#2

Re: PHP Array über Soap verarbeiten...

  Alt 31. Okt 2006, 08:41
schade... hat da keiner ne gute idee?

also ich habe bei dem WSDL tutorial bei delphi source folgenes gesehen?

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var gsp: GoogleSearchPort;
    result: GoogleSearchResult;
    i: integer;
    rea: ResultElementArray;
begin
  gsp:=GetGoogleSearchPort(true);
  result:=gsp.doGoogleSearch('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', Edit1.Text,
  0, 10, true, 'countryDE', false, 'lang_de', 'UTF-8', 'UTF-8');
  if Assigned(result) then begin
    Label1.Caption:=IntToStr(result.estimatedTotalResultsCount)+
    ' Ergebnisse';
    Memo1.Clear;
    rea:=result.resultElements;
    for i:=0 to high(rea) do begin
      Memo1.Lines.Add(rea[i].Title);
      Memo1.Lines.Add(rea[i].URL);
      Memo1.Lines.Add(rea[i].Summary);
      Memo1.Lines.Add('');
    end;
    result.Free;
  end;
end;
dort machen die es mit dem ResultElementArray, aber den typen gibt es ja bei mir nicht... also habe ich mir den Typ in meiner IData.pas erstellt:

Delphi-Quellcode:
  ResultElement = class; { "urn:stryykeSoapServer" }


  ResultElement = class(TRemotable)
  private
    FUserID: WideString;
    FUserName: WideString;
    Ffirstname: WideString;
    Flastname: WideString;
    Fcountry: WideString;
    FOnline: Boolean;
    Fcity: WideString;
  public

  published
    property userid: WideString read FUserID write FUserID;
    property UserName: WideString read FUserName write FUserName;
    property firstname: WideString read Ffirstname write Ffirstname;
    property lastname: WideString read Flastname write Flastname;
    property country: WideString read Fcountry write Fcountry;
    property Online: Boolean read FOnline write FOnline;
    property city: WideString read Fcity write Fcity;

  end;

  ResultElementArray = array of ResultElement; { "urn:stryykeSoapServer" }
das PHP Array, welches zurück kommt ieht z.B so aus:

Code:
    [0] => Array
        (
            [UserID] => 10000206
            [UserName] => fluffy
            [firstname] => Thomas
            [lastname] => Memenga
            [country] => DE
            [city] => Springe
        )

    [1] => Array
        (
            [UserID] => 10000202
            [UserName] => giri01
            [Online] => 1
            [firstname] => Rajiv
            [lastname] => Giri
            [country] => DE
            [city] => Hamburg
        )

    [2] => Array
        (
            [UserID] => 10000203
            [UserName] => giri02
            [firstname] => Rajiv
            [lastname] => Giri
            [country] => DE
            [city] => Hamburg
        )
jetzt habe ich also bei der functions definition folgenes:

  function getBuddyList(sessionID:string;status:string): ResultElementArray; stdcall; und mein test aufruf sieht so aus:

Delphi-Quellcode:
var
buddys: ResultElementArray;
i:integer;
begin
 buddys:=(SoapConnection1.GetSOAPServer as IDataMod).getBuddyList(sessionID,'all');
     for i:=0 to high(buddys) do begin
      Memo1.Lines.Add(buddys[i].UserName);
    end;

end;
so die anzahl der schleife ist korrekt, und wird auch je nach dem wieviele buddys ich habe ausgeführt... (das ist ja schonma was)
leider ist der UserName irgendwie leer... ('') und ich weiß nicht wieso, bzw was ich jetzt dafür tun kann, damit dass jetzt mal vernünftig funktioniert.
Florian Gilde
  Mit Zitat antworten Zitat
Antwort Antwort


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 00:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz