2012-09-18 156 views
1

我对SOAP没有多少经验,但需要为我的工作构建验证器并使用特定的SOAP wsdl。PHP:解析SOAP响应

我已经设置了连接和调用,一切工作正常,但我收到的响应数据在什么我认为是XML,这里是输出的一小部分:

<user id=”54354334543”> 
<firstname>My firstname</firstname> 
<lastname>My lastname</lastname> 
<email>[email protected]</email> 
<nickname>My Nickname</nickname> 
<source>Update_and_add</source> 
</user> 

这种反应是一个在验证中进行一步,因此我必须能够检索诸如and之类的单个项目并将其用于进一步查找。

所以我的问题是,我如何解析这个以获取物品?我尝试了不同的方法并将其转换为数组,但我没有这样做。

任何建议或帮助将非常感激。

问候,
- Mestika

回答

1
$xml = '<user id="54354334543"> 
<firstname>My firstname</firstname> 
<lastname>My lastname</lastname> 
<email>[email protected]</email> 
<nickname>My Nickname</nickname> 
<source>Update_and_add</source> 
</user>'; 
print_r(json_decode(json_encode(simplexml_load_string($xml)))); 

输出:

stdClass Object 
(
    [@attributes] => stdClass Object 
     (
      [id] => 54354334543 
     ) 

    [firstname] => My firstname 
    [lastname] => My lastname 
    [email] => [email protected] 
    [nickname] => My Nickname 
    [source] => Update_and_add 
) 

所以你也可以这样做:

$data = json_decode(json_encode(simplexml_load_string($xml))); 
echo $data->nickname; 
0

试试这个

<?php 
$k = '<user id="54354334543"> 
<firstname>My firstname</firstname> 
<lastname>My lastname</lastname> 
<email>[email protected]</email> 
<nickname>My Nickname</nickname> 
<source>Update_and_add</source> 
</user>'; 
$xml = simplexml_load_string($k); 
echo $id = $xml['id']; 
echo "<br>".$firstname =$xml->firstname; 
?> 

输出

54354334543 
My firstname