Avatar billede askovdk Nybegynder
10. januar 2011 - 16:56 Der er 3 kommentarer og
1 løsning

SOAP XML til PHP variabel

Request:

<soapenv:Envelope xmlns:soapenv=http://schemas.xmlsoap.org/soap/envelope/
                  xmlns:par="http://www.side.dk">
  <soapenv:Header/>
  <soapenv:Body>
      <par:showGeneralInfo/>
  </soapenv:Body>
</soapenv:Envelope>


Response:

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
      <ns2:showGeneralInfoResponse ...>
        <GeneralInfo>
            <info>
              <infoText>Alt er fint i dag.</infoText>
              <infoType>INFO</infoType>
            </info>
        </GeneralInfo>
      </ns2:showGeneralInfoResponse>
  </S:Body>
</S:Envelope>


Hvordan får jeg lavet <infoText> om til fx $infotext, så jeg kan lægge værdien jeg får retur ind i min database ?
Avatar billede HBP2 Praktikant
10. januar 2011 - 22:50 #1
Du kan starte med at læse dokumentationen til PHPs "XML Parser" og "SimpleXML" moduler. Hvis det ene af disse er en del af den PHP du bruger, så kan du bruge den til at parse XMLen i svaret.

Med SimpleXML vil det ser nogenlunde sådan her ud:

$response = '<S:Envelope xmlns:S="..."> ...';
$res = simplexml_load_string($response);
$infotext = $res->Body->showGeneralInfoResponse->GeneralInfo->info->infoText;
Avatar billede tjens Nybegynder
10. januar 2011 - 23:06 #2
Og hvis du kører PHP 5 er der tillige DOMDocument.

Demo:
<?php
$xmlstr = '<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
      <ns2:showGeneralInfoResponse>
        <GeneralInfo>
            <info>
              <infoText>Alt er fint i dag.</infoText>
              <infoType>INFO</infoType>
            </info>
        </GeneralInfo>
      </ns2:showGeneralInfoResponse>
  </S:Body>
</S:Envelope>';

$doc = new DOMDocument();
$doc->loadXML($xmlstr);
echo $doc->getElementsByTagName('infoText')->item(0)->nodeValue;
?>
Avatar billede askovdk Nybegynder
12. januar 2011 - 17:31 #3
tjens smid svar, har brugt dit eksempel...
Avatar billede tjens Nybegynder
12. januar 2011 - 19:47 #4
OK
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester