PHP如何解析 WEBSERVICES介面返回的資料

來源:互聯網
上載者:User
WEBSERVICE伺服器,他們用.net寫了個介面 http://XXX.XXX.XXX.XX/Info.asmx?wsdl
我用PHP調用這個介面
try{$wsdl = "http://XXX.XXX.XXX.XX/Info.asmx?wsdl";$client = new SoapClient($wsdl);$param = array('strName'=>'吳小明', 'strIDCard'=>'4528XXXXXXXX', 'decZiparea'=>'450900');$res = $client->GetBasicInfo($param);print_r($res);}catch(SOAPFault $e){var_dump($e);}

得到如下結果:
stdClass Object(    [GetBasicInfoResult] => stdClass Object        (            [any] =>                                                   4507…………  4507…………  吳……  男性  4528…………  1966-03-10T00:00:00+08:00  道路…………  2011-05-23T00:00:00+08:00  2011-05-23T00:00:00+08:00  2017-05-22T00:00:00+08:00  欽州市…………  AAA級  C1證          ))


[any] => 後面不像是個標準的XML。請問,用PHP怎麼拿出這些值呢?


回複討論(解決方案)

您給出的資料缺少根節點,自己補上吧

資料分為兩部分,第一部分是資料類型聲明,第二部分是資料
我們關心的是第二部分
用 SimpleXMLElement 可得

SimpleXMLElement Object(    [DocumentElement] => SimpleXMLElement Object        (            [Employee] => SimpleXMLElement Object                (                    [ID_ECERT] => 4507…………                    [ECERTID] => 4507…………                    [NAME] => 吳……                    [SEX] => 男性                    [IDCARD] => 4528…………                    [BIRTHDAY] => 1966-03-10T00:00:00+08:00                    [ECERTAREA] => 道路…………                    [FIRSTDATE] => 2011-05-23T00:00:00+08:00                    [BEGINDATE] => 2011-05-23T00:00:00+08:00                    [ENDDATE] => 2017-05-22T00:00:00+08:00                    [GRANTORGAN] => 欽州市…………                    [CREDITLEVEL] => AAA級                    [DRVLICENSE] => C1證                )        ))

您給出的資料缺少根節點,自己補上吧

資料分為兩部分,第一部分是資料類型聲明,第二部分是資料
我們關心的是第二部分
用 SimpleXMLElement 可得

SimpleXMLElement Object(    [DocumentElement] => SimpleXMLElement Object        (            [Employee] => SimpleXMLElement Object                (                    [ID_ECERT] => 4507…………                    [ECERTID] => 4507…………                    [NAME] => 吳……                    [SEX] => 男性                    [IDCARD] => 4528…………                    [BIRTHDAY] => 1966-03-10T00:00:00+08:00                    [ECERTAREA] => 道路…………                    [FIRSTDATE] => 2011-05-23T00:00:00+08:00                    [BEGINDATE] => 2011-05-23T00:00:00+08:00                    [ENDDATE] => 2017-05-22T00:00:00+08:00                    [GRANTORGAN] => 欽州市…………                    [CREDITLEVEL] => AAA級                    [DRVLICENSE] => C1證                )        ))


沒有少哦,介面就是這樣返回的

您給出的資料缺少根節點,自己補上吧

資料分為兩部分,第一部分是資料類型聲明,第二部分是資料
我們關心的是第二部分
用 SimpleXMLElement 可得

SimpleXMLElement Object(    [DocumentElement] => SimpleXMLElement Object        (            [Employee] => SimpleXMLElement Object                (                    [ID_ECERT] => 4507…………                    [ECERTID] => 4507…………                    [NAME] => 吳……                    [SEX] => 男性                    [IDCARD] => 4528…………                    [BIRTHDAY] => 1966-03-10T00:00:00+08:00                    [ECERTAREA] => 道路…………                    [FIRSTDATE] => 2011-05-23T00:00:00+08:00                    [GRANTORGAN] => 欽州市…………                )        ))


版主,能給個樣本嗎?

用正則截取

$s = preg_replace('/.+(GetBasicInfoResult->any);$xml = simplexml_load_string($s);print_r($xml);
就可得到我樣本的結果

我原以為可以直接拿到資料,原來還是要對字串進行操作,算了,結帖吧

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.