簡體   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