php soapserver返回可读性更好的关联数组

php soapserver返回可读性更好的关联数组,php,soap,soapserver,Php,Soap,Soapserver,我正在使用PHP SOAPSERVER类 作为响应,我将发送关联php数组: function getItems() { ... $items[] = Array("itemID" =>$itemID,"itemName"=>$itemName); return $items; } SOAP返回如下所示: ... <Items> <item type="Map"> <item> <

我正在使用PHP SOAPSERVER类

作为响应,我将发送关联php数组:

function getItems()    
{    
   ...
   $items[] = Array("itemID" =>$itemID,"itemName"=>$itemName);
   return $items;
 }
SOAP返回如下所示:

...
<Items>
<item type="Map">
    <item>
        <key type="string">
            itemID
        </key>
        <value type="string">
            17558
        </value>
    </item>
    <item>
        <key type="string">
            itemName
        </key>
        <value type="string">
            I-17558
        </value>
    </item>
</item>
</Items>
...
    ...
<Items>
    <item>
        <itemID>17558</itemID>
        <itemName>I-17558</itemName>
    </item>
    <item>
        <itemID>17559</itemID>
        <itemName>I-17559</itemName>
    </item>
</Items>
    ...
。。。
项目ID
17558
项目名称
I-17558
...
这样的回报对于人类来说是很难分析的(考虑到更大的数组)。 首选形式如下:

...
<Items>
<item type="Map">
    <item>
        <key type="string">
            itemID
        </key>
        <value type="string">
            17558
        </value>
    </item>
    <item>
        <key type="string">
            itemName
        </key>
        <value type="string">
            I-17558
        </value>
    </item>
</item>
</Items>
...
    ...
<Items>
    <item>
        <itemID>17558</itemID>
        <itemName>I-17558</itemName>
    </item>
    <item>
        <itemID>17559</itemID>
        <itemName>I-17559</itemName>
    </item>
</Items>
    ...
。。。
17558
I-17558
17559
I-17559
...
这样的SOAP返回是否可能(不改变返回类型-数组)?怎么做


我刚刚开始使用SOAP,大多数教程都演示了如何返回字符串等简单类型

不发送关联数组,而是发送stdclass对象

例如:

$return = new stdclass;
$return->ItemID = 1;
$return->ItemName = 'foo';

return $return;

然后SOAP结果将是您想要的方式

不发送关联数组,而是发送stdclass对象

例如:

$return = new stdclass;
$return->ItemID = 1;
$return->ItemName = 'foo';

return $return;

然后SOAP结果将是您想要的方式

为什么要阅读SOAP消息?通常,客户端会将其转换为适合响应数据的任何本机结构/类型。@ThiefMaster,我想使用DOM方法将SOAP消息解析为XML。当前的响应消息结构看起来很混乱。呃,使用现有的SOAP客户端。。。不管怎样,肥皂就是这样的。您不能简单地使用不同的格式。这是标准化的。@ThiefMaster,谢谢你提供的信息。一想到能够改变这种结构,我就要命了。你为什么要阅读SOAP消息呢?通常,客户端会将其转换为适合响应数据的任何本机结构/类型。@ThiefMaster,我想使用DOM方法将SOAP消息解析为XML。当前的响应消息结构看起来很混乱。呃,使用现有的SOAP客户端。。。不管怎样,肥皂就是这样的。您不能简单地使用不同的格式。这是标准化的。@ThiefMaster,谢谢你提供的信息。一想到能够改变这种结构,我就心烦意乱。SOAP客户端在发送对象时使用对象表示法,所以这应该能回答OP的问题。您还可以使用典型的对象实例化语法来实例化预定义的类,即“new stdClass()”。SOAP客户端在发送对象时使用对象表示法,因此这应该回答OP的问题。您还可以使用典型的对象实例化语法(即“newstdclass()”)实例化预定义类。