繁体   English   中英

PHP:解析SOAP响应

[英]PHP: Parse SOAP response

我没有SOAP的丰富经验,但是需要为我的工作构建验证器并使用特定的SOAP wsdl。

我已经建立了连接和调用,并且一切正常,但是我以我认为是XML的方式接收到响应数据,这是输出的一小部分:

<user id=”54354334543”>
<firstname>My firstname</firstname>
<lastname>My lastname</lastname>
<email>my_email@text.com</email>
<nickname>My Nickname</nickname>
<source>Update_and_add</source>
</user>

此响应是验证的第一步,因此我必须能够检索和等单个项目,并将其用于进一步查找。

所以我的问题是,我该如何解析才能取出物品? 我尝试了不同的方法并将其转换为数组,但是我没有运气。

任何建议或帮助将不胜感激。

问候,
-梅斯蒂卡

$xml = '<user id="54354334543">
<firstname>My firstname</firstname>
<lastname>My lastname</lastname>
<email>my_email@text.com</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] => my_email@text.com
    [nickname] => My Nickname
    [source] => Update_and_add
)

因此,您可以执行以下操作:

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

还有这个功能:

http://php.net/manual/zh/book.simplexml.php#108035

尽管我会首先尝试通过JSON解决方案进行过滤,但这可能会更高效,更清晰。

尝试这个

<?php
$k = '<user id="54354334543">
<firstname>My firstname</firstname>
<lastname>My lastname</lastname>
<email>my_email@text.com</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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM