使用PHP中的命名空间从WSDL XML读取Array对象

时间:2013-06-17 10:38:59

标签: php xml-parsing wsdl nusoap

我使用WSDL在我的项目中将XML Soap响应中的对象数组从我的java代码发送到php。

我想在php中为我的项目存储值。

我尝试了很多方法,但无法找到如何解析我的xml和读取值。我不是在xml区域中导出。

请任何人帮助我从价值观中阅读我的价值观。

我的SOAP响应主体:

<soapenv:envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" \xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:body>

<getactualtimerequestresponse xmlns="http://impl.sample.com">
        <getactualtimereturn>.
            <ns1:projectlist xmlns:ns1="http://response.sample.com">
                <item>
                    <ns2:userid xmlns:ns2="http://request.sample.com">4</ns2:userid>
                    <ns3:username xmlns:ns3="http://request.sample.com">Manoj Arun</ns3:username>
                </item>
                <item>
                    <ns5:userid xmlns:ns5="http://request.sample.com">5</ns5:userid>
                    <ns6:username xmlns:ns6="http://request.sample.com">Sethu Raman</ns6:username>
                </item>
            </ns1:projectlist>              
            <ns10:message xsi:nil="true" xmlns:ns10="http://response.sample.com"></ns10:message>
        </getactualtimereturn>
    </getactualtimerequestresponse>
</soapenv:body>
</soapenv:envelope>

projectList是我在java中创建的对象。

在PHP中:

我试着像下面这样读,但我没有得到任何东西。

foreach($xml->xpath('//ns:projectList') as $header)
{
    foreach($header->item as $userIds)
    {
         echo $userIds->xpath('//ns:userId');
    }                       
}

提前致谢...

1 个答案:

答案 0 :(得分:0)

 $client = new SoapClient('http://url.com?wsdl');
 $params = array(Java arg => php value);
 $result = $client->Function( $parms );
 print_r($result);