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);就可得到我樣本的結果
我原以為可以直接拿到資料,原來還是要對字串進行操作,算了,結帖吧