从php中的wcf服务回显xml结果?

问题描述

| 我有一个WCF操作GetColors,它返回颜色列表作为GetColorsResult。我得到的结果很好,但是如何在PHP中遍历GetColorsResult并回显每个元素? 我在做:
<?PHP

header(\'Content-Type: text/plain\');

echo \"WCF Test\\r\\n\\r\\n\";

// Create a new soap client based on the service\'s Metadata (WSDL)
$client = new SoapClient(\'http://localhost:8181/Colors.svc?wsdl\',array(
                         \'login\' => \"test\",\'password\' => \"test\"));


 $retval = $client->GetColors();


 //Need to loop throuh $retval here

 echo $retval->GetColorsResult; //This throws error.




?>
有没有办法控制结果的名称,例如,我没有指定WCF返回GetColorsResult,而是将Result附加到我的方法调用中。同样,它将响应附加到GetColors的响应(GetColorsResponse) 执行print_r($ retval)时的输出
stdClass Object
(
    [GetColorsResult] => stdClass Object
        (
            [Color] => Array
                (
                [0] => stdClass Object
                    (
                        [Code] => 1972
                        [Name] => RED
                    )

                [1] => stdClass Object
                    (
                        [Code] => 2003
                        [Name] => BLUE
                    )

                [2] => stdClass Object
                    (
                        [Code] => 2177
                        [Name] => GREEN
                    )
               )
          )
      )
    

解决方法

关于您的print_r,这应该为您提供所有值:
<?php
$colorResult = $retval->GetColorsResult;
foreach($colorResult->Color as $color){
  echo $color->Code . \" \" . $color->Name . \"<br />\";
}
?>
这是您需要的吗? BR TJ 编辑: 如果仅出于调试目的需要它,则应使用print_r。 在这里看看:print_r PHP文档     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...