Ankündigung

Einklappen
Keine Ankündigung bisher.

SOAP Response auslesen

Einklappen

Neue Werbung 2019

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

  • SOAP Response auslesen

    Hi
    ich steh mal wieder auf dem Schlauch. Und zwar fehlt mir ein (wahrscheinlich) ganz einfacher Befehl:

    ich habe eine Antwort, die wie folgt aussieht
    Code:
    ...
    <env:Body env:encodingStyle="">
    <var3bl:BookLabelResponse idcType="EAN_LP" idc="00340433830245123711" routingCode="53113019515335" issueDate="2012-01-12T04:18:29.399+0100">
    <var3bl:label>
    
    ...Text...
    
    </var3bl:label>
    </var3bl:BookLabelResponse>
    </env:Body>
    ...
    Nun lese ich später per
    Code:
    $xml = simplexml_load_string($response);
    $ns = $xml->getNamespaces(true);
    $soap = $xml->children($ns['env']);
    $pdf = $soap->Body->children($ns['var3bl'])->BookLabelResponse->label;
    das "label" aus. Das klappt auch...
    Jetzt brauch ich aber auch noch die "idc" (Attribut im BookLabelResponse).

    Ich habe versucht, über
    Code:
    $dhl = $soap->Body->children($ns['var3bl'])->BookLabelResponse->attributes()->idc;
    oder
    Code:
    $dhl = $soap->Body->children($ns['var3bl'])->BookLabelResponse(idc);
    da ranzukommen, aber das gefällt ihm wohl nicht

    Könnt ihr mir sagen, wie der Befehl am Ende richtig heißen müsste???

  • #2
    Ich kenne jetzt auch nicht den genauen Syntax, aber hast du dir mal angeschaut, wie die Ausgabe von
    PHP-Code:
    var_dump($soap->Body->children($ns['var3bl'])->BookLabelResponse); 
    aussieht?
    Daraus sollte man ableiten können, wie man auf die Attribute zugreifen kann.
    [URL="http://php.net/manual/en/migration55.deprecated.php"]mysql ist veraltet[/URL] [URL="http://php-de.github.io/jumpto/mail-class/"]Mails senden: Ohne Probleme und ohne mail()[/URL]
    [PHP]echo 'PS: <b>Meine Antwort ist keine Lösung, sondern nur eine Hilfe zur Lösung.</b>';[/PHP]

    Kommentar


    • #3
      Danke schonmal für die Anregung.
      Mit dem
      Code:
      var_dump($soap->Body->children($ns['var3bl'])->BookLabelResponse);
      bekomm ich folgendes
      Code:
      object(SimpleXMLElement)#6 (1) { ["label"]=> string(14928) "JVBERi0xLj....."}
      Wenn ich mir nur
      Code:
      var_dump($soap);
      ausgeben lasse, kommt das hier dabei raus:
      Code:
      object(SimpleXMLElement)#3 (2) { ["Header"]=> object(SimpleXMLElement)#4 (0) { } ["Body"]=> object(SimpleXMLElement)#8 (1) { ["@attributes"]=> array(1) { ["encodingStyle"]=> string(0) "" } } }
      Da ist ja immerhin schonmal das Attribut vom Body erkannt...

      Aber weiter komme ich weder über
      $soap->Body
      $soap->Body->BookLabelResponse
      $soap->BookLabelResponse
      $soap->Body->attributes($ns['var3bl'])->BookLabelResponse
      $soap->Body->children($ns['var3bl'])->attributes
      ...

      Wenn jemand eine ganz andere Lösung hat wäre ich auch dafür offen

      Kommentar


      • #4
        Hast du mal
        PHP-Code:
        $soap->Body->children($ns['var3bl'])->BookLabelResponse['idc'
        versucht?
        [URL="http://php.net/manual/en/migration55.deprecated.php"]mysql ist veraltet[/URL] [URL="http://php-de.github.io/jumpto/mail-class/"]Mails senden: Ohne Probleme und ohne mail()[/URL]
        [PHP]echo 'PS: <b>Meine Antwort ist keine Lösung, sondern nur eine Hilfe zur Lösung.</b>';[/PHP]

        Kommentar


        • #5
          Da kommt nur "NULL" als Antwort

          Kommentar

          Lädt...
          X