php print xml данные, возвращенные из вызова API - не удалось - PullRequest
0 голосов
/ 11 августа 2009
$response = sendRequest($curl, doCreateDB($domainid, $dbname, $dbtype));                                        

$responseXml = parseResponse($response);


function parseResponse($response_string)
{
    $xml = new SimpleXMLElement($response_string);
    if (!is_a($xml, 'SimpleXMLElement'))
        throw new ApiRequestException("Cannot parse server response: {$response_string}");
    return $xml;
}

полный вывод

SimpleXMLElement Object
(
    [@attributes] => Array
        (
            [version] => 1.5.0.0
        )

    [database] => SimpleXMLElement Object
        (
            [add-db] => SimpleXMLElement Object
                (
                    [result] => SimpleXMLElement Object
                        (
                            [status] => error
                            [errcode] => 1007
                            [errtext] => Database with requested name already exists
                        )

                )

        )

)

Окончательный вывод выше. Затем я хочу получить конкретное значение узла. Например: я хочу получить статус узла.

Я пробовал несколько способов, но не могу распечатать конкретные данные.

echo $responseXml->database->{add-db}->result->status; // (nothing come out)

и т.д ...

Ответы [ 2 ]

2 голосов
/ 11 августа 2009

Попробуйте это:

echo $responseXml->database->{'add-db'}->result->status;

Обратите внимание на одинарные кавычки для выбора элемента массива через дефис: {'...'}.

0 голосов
/ 11 августа 2009

Попробуйте

echo (string)$responseXml->database->{add-db}->result->status; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...