0

迭代这些 XML 片段的正确方法是什么?

你好呀。

我有一个 Web 服务,可以为我带来一些客户进行集成。

如果 werbservice 只返回一个客户端,结果是这样的:

 <ClientsToIntegrateResult>
    <Client>
       <Id>1</Id>
       <Name>John</Name>
    </Client>
 </ClientsToIntegrateResult>

如果 webService 返回多个客户端,结果如下:

 <ClientsToIntegrateResult>
    <Client>
       <Id>1</Id>
       <Name>John</Name>
    </Client>
    <Client>
       <Id>2</Id>
       <Name>Peter</Name>
    </Client>   
 </ClientsToIntegrateResult>

我有这段 PHP 代码来读取来自 webService 的结果,其中 $myWSResponse 是我的 webService 的实例:

 $clients = $myWSResponse->ClientsToIntegrateResult;

 foreach ($clients->Client as $client ) 
 {
    print_r($client); //Print the client node and its properties if more than one client, and prints each property of client node if only one client.
    print_r($client->Id); //Give me error if only one client, because Id will not exist.
 }

我的问题是当 web 服务只返回一个客户端时我的代码不起作用。当我有多个客户时,我的 foreach 可以正常工作,正如我所愿,因为$clients->Client将是一个数组。但是当 webService 返回时,只有一个客户端$clients->Client将是节点本身,我的代码会抛出错误。

我能做些什么来解决它?

我不习惯 PHP 开发,但习惯于 .NET 开发。任何帮助都是宝贵的。

4

1 回答 1

0
if(count($clients->Client) > 1){

foreach ($clients->Client as $client ) 
 {
    print_r($client); //Print the client node and its properties if more than one client, and prints each property of client node if only one client.
    print_r($client->Id); //Give me error if only one client, because Id will not exist.
 }

}else {
echo $clients->Client['id']; //and other child attributes
}
于 2013-09-05T19:32:52.240 回答