2017-11-30 7 views
0

配列に石鹸XML応答を解析し、私はこのような応答だ:私は石鹸サーバーを呼び出すためにカールを使用していた

$response = $this->SoapModel->soapCall($xml , $this->vas_wsdl_url); 
$obj = simplexml_load_string($response); 
echo $obj;die(); 

<?xml version="1.0" encoding="utf-8"?> 
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <soap:Body> 
     <GenerateAuthPasswordResponse xmlns="NepalTelecom.AuthGateway"> 
      <GenerateAuthPasswordResult>abcd-efgh</GenerateAuthPasswordResult> 
      <ResultCode>1</ResultCode> 
     </GenerateAuthPasswordResponse> 
    </soap:Body> 
</soap:Envelope> 

をし、私は石鹸のXMLを解析しようとしたとき、

[注:$応答は、SOAP、XML内に設けられた上記SOAPレスポンスである]

と私はこのようないくつかのエラーとしての$ OBJを得る:

Severity: Warning 
Message: simplexml_load_string(): namespace warning : xmlns: URI NepalTelecom.AuthGateway is not absolute 

この問題を解決するためには、どなたでもご利用ください。 ありがとうございます。

+0

このリンクを参照してください。これはあなたに役立つかもしれません。 https://stackoverflow.com/questions/4194489/how-to-parse-soap-xml – Alex

+0

私はすでにそれを試みましたが、必要な応答を得ることができませんでした。私が上で提供したsoap xmlのための応答を配列で提供できるかどうかを教えてください。 –

答えて

0

これを試してください。

<?php 

$xml = '<?xml version="1.0" encoding="utf-8"?> 
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <soap:Body> 
     <GenerateAuthPasswordResponse > 
      <GenerateAuthPasswordResult>abcd-efgh</GenerateAuthPasswordResult> 
      <ResultCode>1</ResultCode> 
     </GenerateAuthPasswordResponse> 
     <GenerateAuthPasswordResponse > 
      <GenerateAuthPasswordResult>abcd-efgh</GenerateAuthPasswordResult> 
      <ResultCode>1</ResultCode> 
     </GenerateAuthPasswordResponse> 
    </soap:Body> 
</soap:Envelope>'; 

$xml = simplexml_load_string($xml, NULL, NULL, "http://schemas.xmlsoap.org/soap/envelope/"); 
$ns = $xml->getNamespaces(true); 
$soap = $xml->children($ns['soap']); 
$res = $soap->Body->children(); 

print_r($res); 
+0

私を助けるために私の質問に答えるためにアレックスに感謝します。それは有り難いです。しかし、申し訳ありませんが、私はまだ私が必要なものを手に入れていないと言います。私はタグ間の値を抽出したい。私はあなたが既にその方法を無頓着に試したが、あなたが提供した方法を試した。申し訳ありませんが、それは仕事ではありません。エラーは:simplexml_load_string():名前空間警告:xmlns:URI NepalTelecom.AuthGatewayは絶対ではありません –

+0

私はこのプログラムを実行しましたが、エラーは発生しませんでした。 回答私が得た: は ( は[GenerateAuthPasswordResponse] =>配列 ( [0] =>にSimpleXMLElementオブジェクトオブジェクトにSimpleXMLElement ( [GenerateAuthPasswordResult] => ABCD-EFGH 【のResultCode] => 1 ) [1] =>にSimpleXMLElementオブジェクト ( [GenerateAuthPasswordResult] => ABCD、EFGH 【のResultCode] => 1 ) ) ) – Alex

+0

何らかの認証エラーがあります。どのように私は必要な特定のタグの内容を取得するためにstrip_tagsを使用していた。アレックスありがとうございます。私は私の答えを得た。あなたは私をたくさん助けて、たくさんのアイデアをくれました。 –

関連する問題