PHP XML-RPC Response verarbeiten

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PHP XML-RPC Response verarbeiten

    Hallo,

    ich arbeite gerade mit dem XML-RPC für PHP. Anfrage senden klappt, bekomme dann ein XMLRPCResponse- Objekt zurück.

    Nun weiß ich aber nicht, wie ich am besten an die Daten des Objektes komme.
    Bietet mir die PHPXMLRPC-library irgendwelche Funktionen um die Daten herauszulesen? (in der Doku sind leider nur triviale Beispiele, die mir nicht weiterhelfen).

    Oder soll man aus dem Objekt ein String machen und auf "herkömliche" Weise auslesen, z.B. mit dem XML-Parser von PHP?

    Also mir ist die Vorgehensweise nicht ganz klar! Hat vielleicht jemand eine Idee, oder sogar ein Code-Schnipsel?

    Danke im Voraus!
    Zuletzt geändert von iceman90; 17.04.2008, 00:45.

  • #2
    Ich habe noch nie damit gearbeitet, habs aber auch grad bissel versucht:

    Hier hats was dabei
    Das hier hast du sicher auch schon gesehen

    Die Kommentare unten haben mir weitergeholfen... Ist halt ein "Spezialgebiet", darum weiss ich net ob du gross Antworten darauf bekommst ^^ Aber das zu beurteilen überlass ich lieber den Profis / Admins...

    MfG

    Kommentar


    • #3
      Danke, aber die Beispiele kannte ich leider schon.
      Hier ist die ganze Doku:

      Ich habe es ungefähr so implementiert wie im folgenden Beispiel:

      PHP-Code:

      $f
      =new xmlrpcmsg('examples.getStateName',
                                         array(new 
      xmlrpcval($HTTP_POST_VARS["stateno"], "int")));
        
      $c=new xmlrpc_client("/server.php""phpxmlrpc.sourceforge.net"80);
        
      $r=$c->send($f);
        
      $v=$r->value();
        if (!
      $r->faultCode()) {
            print 
      "State number " htmlentities($HTTP_POST_VARS["stateno"]) . " is " .
            
      htmlentities($v->scalarval()) . "<BR>";
            print 
      "<HR>I got this value back<BR><PRE>" .
            
      htmlentities($r->serialize()) . "</PRE><HR>\n";
        } else {
            print 
      "Fault <BR>";
            print 
      "Code: " htmlentities($r->faultCode()) . "<BR>" .
                  
      "Reason: '" htmlentities($r->faultString()) . "'<BR>";
        } 
      Wenn ich jetzt
      PHP-Code:
      r->serialize() 
      ausführe, bekomme ich den Response als XML-String. Leider hören alle Beispiele dort auf.

      Also nehme ich an, dass die PHPXMLRPC-Library nur das Kommunikationsprotokoll implementiert und man den Response selbst parsen muss.
      Also werd ich es erstmal so versuchen.

      Kommentar


      • #4
        Naja du generierst ja einfach XML, ich nehme schon net an, dass es fürs parsen eine Funktion gibt.
        Vielleicht den XML-String in ein XML-Objekt umwandeln und mit SimpleXML damit arbeiten?

        Sorry aber viel mehr als raten kann ich da auch nicht. Ich hoffe immernoch auf einen Admin... '^^

        Bin aber gespannt, ob du doch noch etwas findest Bitte lass es mich wissen, falls du eine Lösung hast!

        MfG
        Onyxagargaryll


        EDIT: Meinen Edit weggenommen ergab keinen Sinn
        Zuletzt geändert von Onyxagargaryll; 17.04.2008, 13:54.

        Kommentar


        • #5
          Ich glaube andere Implementierungen bringen da schon einen integrierten Parser mit, z.B. Apache XML-RPC für Java.
          Bei XML-RPC for PHP ist es wohl nicht so.

          Ich versuche es gerade mit dem XMLReader von PHP.

          Kommentar


          • #6
            Leider habe ich 0 Ahnung von Java ^^

            Ja klar XMLReader geht auch, kommt ja aufs gleiche raus.

            Also wenn ich nix mehr von dir hör nehme ich an du hasts halt auf die "alternative" Art gelöst

            Auf dass dein Script funktionieren möge

            MfG

            Kommentar


            • #7
              Ich glaub ich bin auf dem richtigen Weg. Der XMLReader, hat denke ich alles was ich brauche.

              Und hier gibts es auch ein gutes Beispiel, wie ein XML-RPC-Response mit dem XMLReader geparst wird:

              Parsing XML

              sowie die Doku:

              PHP:XMLReader

              Kommentar


              • #8
                Klar, das ist ja dann kaum mehr ein Problem

                Danke dir, ich wünsche viel Erfolg!

                MfG

                Kommentar

                Lädt...
                X