Ankündigung

Einklappen
Keine Ankündigung bisher.

WSDL + Curl

Einklappen

Neue Werbung 2019

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

  • WSDL + Curl

    Hallo,

    Ich sende per curl Daten an einen Server der mir ein Ergebnis als Soap liefert. Nun habe ich lokal eine WSDL Datei und eine xsd Datei. Wie bekommen ich diese Daten zusammen?

    Mit simplexml_load_string bekomme ich keine Ergebnis.
    Mit registerXPathNamespace erhalte ich auch kein Ergebnis.

    Ich weiß auch nicht mehr, wonach ich noch suchen soll. Ich hoffe, Ihr habt eine Idee...

    Liebe Grüße

  • #2
    http://www.php.de/php-fortgeschritte...uncements.html

    kannst du bitte kein ergebniss konkretisieren?

    Kommentar


    • #3
      Also, das senden per curl funktioniert... Im Ergebnis erhalte ich:

      PHP-Code:
      <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
       <
      soap:Body>
        <
      ns1:LagerAnfrageResponse xmlns:ns1="urn:dfr:v100">
         <return 
      RTyp="schnell">
          <
      ns1:Artikel>
           <
      ns1:AnfrageMenge>1</ns1:AnfrageMenge>
           <
      ns1:AnfrageArtikelnummer>445</ns1:AnfragePzn>
           <
      ns1:Lager>
            <
      ns1:Menge>1</ns1:Menge>
            <
      ns1:Verpackung>Normal</ns1:Verpackung>
           </
      ns1:Lager>
          </
      ns1:Artikel>
          <
      ns1:Artikel>
           <
      ns1:AnfrageMenge>2</ns1:AnfrageMenge>
           <
      ns1:AnfrageArtikelnummer>4454</ns1:AnfragePzn>
           <
      ns1:Lager>
            <
      ns1:Menge>2</ns1:Menge>
            <
      ns1:Verpackung>ohne</ns1:Verpackung>
           </
      ns1:Lager>
          </
      ns1:Artikel>
         </return>
        </
      ns1:LagerAnfrageResponse>
       </
      soap:Body>
      </
      soap:Envelope
      simplexml_load_string enthält keine Daten wenn ich das Ergebnis einlese. Das mache ich so:
      PHP-Code:
      $xml simplexml_load_string($resultNULLNULL'http://schemas.xmlsoap.org/soap/envelope/');
      var_dump($xml);    

      Ergebnisobject(SimpleXMLElement)#3 (0) { } 
      Wie gesagt, ich habe lokal die WSDL Datei und auch eine xsd Datei.

      Kommentar


      • #4
        http://php.net/manual/de/class.domdocument.php Probiers mal mit dem DOM-Objekt, das frisst alles an XML.
        Current Projects: http://www.welten-buch.de, http://neu.zooadoo.de

        Kommentar


        • #5
          Wie lässt sich denn aber das Ergenis mit der lokalen WSDL zusammenbringen? Dann bräuchte ich diese ja nicht, wenn diese quasi unnütz ist?

          Kommentar


          • #6
            tests aus, dann kannst du dir die frage eventuell selbst beantworten.
            Current Projects: http://www.welten-buch.de, http://neu.zooadoo.de

            Kommentar


            • #7
              ich geb mal das zum besten:
              http://lmgtfy.com/?q=soap+wdsl+site%3Aphp.de

              Kommentar


              • #8
                wenn ich DOM-Objekt nutze, dann wird das Ergebnis eingelesen und ausgegeben. Greife ich dann auf "Artikel" zu über "$doc->getElementsByTagName('Artikel')->item(0)" dann erhalte ich immer nur einen kompletten string nicht aber alle subs einzeln?

                Ich bin etwas verwirrt, vielleicht müssten wir noch etwas weiter vorne anfangen?

                Kommentar


                • #9
                  du ziehst dir ein nodelistitem http://php.net/manual/de/domnodelist.item.php und was ziehst du da wie raus?

                  Kommentar


                  • #10
                    Nutze z.B. https://packagist.org/packages/wsdl2...l2phpgenerator um aus dem WSDL einen SoapService zu erstellen der dir bequem alle Methoden aufzeigt und dann auch Objekte zurückgibt.

                    Kommentar


                    • #11
                      @mYkon, vielen Dank... Das erstellt mir ja aber nur den Aufruf, den habe ich ja soweit fertig. Leider gibt es nichts, für das Ergebnis.

                      so sieht es aus:

                      PHP-Code:
                      private static $classmap = );

                      public function 
                      __construct

                      public function Bestellen 
                      mehr gibt es nicht...

                      Es ist auch so, das die Anfrage per POST gesendet werden muss. Daher macht es das für mich schwerer... Einen normale Soap Aufruf kann ich verarbeiten.
                      Also muss ich ja den "Umweg" über curl gehen. Und da bekomme ich eben die Daten nicht mehr zusammen...

                      Kommentar


                      • #12
                        Für einen fortgeschrittenen im fortgeschrittenen forum, ingnorierst du aber konsequent:
                        http://www.php.de/php-fortgeschritte...uncements.html

                        Kommentar


                        • #13
                          was ignoriere ich denn? ...

                          Habe doch das Ergebnis gepostet...

                          Was soll / darf ich noch dazu schreiben?

                          Kommentar


                          • #14
                            den link haste inzwischen gelesen? immerhin hab ich ihn zweimal geposted.

                            Kommentar


                            • #15
                              ja habe ich, ich verstehe aber das Problem nicht...
                              mYkon schrieb:

                              "Nutze z.B. https://packagist.org/packages/wsdl2...l2phpgenerator um aus dem WSDL einen SoapService zu erstellen der dir bequem alle Methoden aufzeigt und dann auch Objekte zurückgibt."

                              Und in meiner Antwort ist, dass es nur den Aufruf erstellt und keine Objekte zurück gibt.

                              Mehr kann ich nicht dazu schreiben!?

                              Kommentar

                              Lädt...
                              X