我正在使用 PHP SoapClient 调用 SOAP 服务。
我正在使用以下代码返回以下视图
$response = $client->Get($request);
echo '<pre>';
print_r($response);
echo '</pre>';
echo '<hr>';
这是回复
stdClass Object
(
[TransactionID] => 17ACE7B75CB6SDBX
[ResponseType] => SYNC
[Parameters] => stdClass Object
(
[Param] => stdClass Object
(
[_] => SANDBOX20101001123321125.168.214.72125.168.253.29912003D60E04CC4C1F8
[id] => SessionLogRecord
)
)
)
这里是 ,显示其中我想要提取的元素
<onlinesessionrecord><serviceid>SANDBOX</serviceid><datetime>20101001123321</datetime><ipaddress>125.168.214.72</ipaddress><nasipaddress>125.168.253.2</nasipaddress><nasport>9912</nasport><sessionid>003D60E04CC4C1F8</sessionid></onlinesessionrecord>
例如,我试图从上面的中提取
我尝试使用以下方法显示它,但出现错误“尝试读取字符串上的属性“onlinesessionrecord””
$data = $response->Parameters->Param->_->onlinesessionrecord->ipaddress;
print_r($data);
如果有人知道我做错了什么,您的建议将不胜感激。 我确定这很简单,我似乎只是在与 xml 斗争。
--- 第二天,在评论帮助后的进一步发现--- 所以,感谢下面的评论,我现在已经到了这一点。如果我使用以下内容:-
$data = simplexml_load_string($response->Parameters->Param->_);
$out = $data->IPAddress; // same if I do the following $data[0]->IPAddress;
print_r($out);
我明白了:-
SimpleXMLElement Object ( [0] => 125.168.214.72 ) if I do the below.
但我只想提取 IPAddress 值并将其分配给一个变量。我尝试了两种方法
$out = $data->IPAddress;
和
$out = $data[0]->IPAddress;
两者都给出相同的输出,我只想获得实际的 IPAddress 并将其分配给一个变量。