Эхо XML результат от службы wcf в php? - PullRequest
1 голос
/ 26 мая 2011

У меня есть операция WCC GetColors, которая возвращает список цветов как GetColorsResult. Я получаю результат хорошо, но как мне пройти через GetColorsResult в php и эхо каждого элемента?

Я делаю:

<?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
                    )
               )
          )
      )

1 Ответ

2 голосов
/ 26 мая 2011

относительно вашего print_r это должно дать вам все значения:

<?php
$colorResult = $retval->GetColorsResult;
foreach($colorResult->Color as $color){
  echo $color->Code . " " . $color->Name . "<br />";
}
?>

тебе это нужно?

BR

TJ

EDIT: Если вам это нужно только для целей отладки, вы должны использовать print_r. Посмотрите здесь: print_r PHP Документация

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...