我很难理解如何在 PHP 中查看/使用 SOAP 调用的 XML 结果。我有一个脚本向另一台服务器上的脚本发出 SOAP 请求,并发送 XML 响应。该响应有许多嵌套节点,其中一些具有属性。我能够进行 SOAP 调用并获得响应,但是,使用 var_dump 和 print_r 给了我没有属性的 XML 数组。
下面是代码分解:
发出 SOAP 请求的 PHPH 脚本中的代码片段
use_soap_error_handler(true);
$client = new SoapClient(null, array("uri" => "Lic", "location" => "http://mydomain.com/Lic.cgi", "trace" => 1));
$assets = $client->Menu($email,$account_id);
预期响应 该调用在另一台服务器上生成以下(样式)XML 结果:
<opt>
<Account>
<Asset id="1000">
<Menu type="simple">Software</Menu>
</Asset>
<Asset id="2000">
<Menu type="modal">Software</Menu>
<Menu type="simple">Demo</Menu>
</Asset>
</Account>
</opt>
请注意,资产和菜单节点具有节点属性(id、类型等)。
实际结果 当我对 $assets 执行 var_dump 或 print_r 时,我确实得到了成功的结果,但我无法在任何地方看到属性(id、类型等)。最终目标是获取 XML 数组并将数据写入 MySQL 表,但我也需要属性,而且几天的搜索还没有找到关于如何在 PHP 中访问完整数据结果的缺失部分。
VAR DUMP var_dump 会产生如下结果:
object(stdClass)#44 (1) {
["Account"]=>
object(stdClass)#45 (1) {
["Asset"]=>
array(2) {
[0]=>
object(stdClass)#46 (1) {
["Menu"]=>
string(12) "Software"
}
....
PRINT_R 和 print_r($assets) 给出如下内容:
stdClass Object
(
[Account] => stdClass Object
(
[Asset] => Array
(
[0] => stdClass Object
(
[Menu] => Software
)
[1] => stdClass Object
(
[Menu] => Array
(
[0] => Software
[1] => Demo
)
...
除了 var_dump 和 print_r,还有其他方法可以查看结果,以便查看完整数据,包括属性?
提前致谢,如果我没有正确提出问题,我深表歉意(如果是这样,请告诉我,以便我可以使用正确的术语重新措辞)。