2016-04-27 55 views
1

我想用PHP解析下面的SOAP。我已经尝试了在这里找到的每个可能的解决方案,但由于使用的命名空间,我没有管理它。可以请别人帮忙吗?使用php解析名称空间的SOAP

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:geo="http://path.to.geo" xmlns:geo1="http://path/"> 
<soapenv:Header/> 
<soapenv:Body> 
    <geo:SendClient> 
    <geo1:SendClientRequest> 
     <geo1:GeneralInfo> 
      <geo1:Team>AP</geo1:Team> 
     </geo1:GeneralInfo> 
    </geo1:SendClientRequest> 
    </geo:SendClient> 
</soapenv:Body> 
</soapenv:Envelope> 

我想在输出中获取AP值。

$xmlData = simplexml_load_file('request.xml'); 
$xmlData->registerXPathNamespace('geo1', 'http://path/'); 
foreach ($xmlData->xpath('//geo1:GeneralInfo') as $item) 
{ 
    print_r($item); 
var_export($item->xpath('//geo1:Team')); 
} 

回答

0

花费数小时后,我发现,打印输出正确的方法是:

$result = $item->xpath('//geo1:Team'); 
echo (string)$result[0]; 

,而不是

var_export($item->xpath('//geo1:Team'));