1

我很难理解如何在 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,还有其他方法可以查看结果,以便查看完整数据,包括属性?

提前致谢,如果我没有正确提出问题,我深表歉意(如果是这样,请告诉我,以便我可以使用正确的术语重新措辞)。

4

0 回答 0