Возникли проблемы с получением ответа API Fogbugz в объекте SimpleXML

Я пытаюсь написать оболочку вокруг API fogbugz, начиная с получения токена входа. Кажется, я не могу получить токен в моем объекте-оболочке.

$url = "http://..../fogbugz/api.asp?cmd=logon&email=" . $_UN . "&password=" . $_PW;
$contents = file_get_contents($url);
$resp = simplexml_load_file($contents);
print_r($resp); 

Ответ: Объект SimpleXMLElement ([токен] => Объект SimpleXMLElement ()) Объект в переменной-члене токена пуст. Однако строка ответа в порядке. Если я использую

header("Content-type: text/xml");
echo $contents;

Я получаю правильный XML из API. Кроме того, если я использую xml как строку, непосредственно в коде он работает нормально:

$xml = "<?xml version='1.0'?><response><token>iibgo9d785iavs5av5a6lrimbn2r54</token></response>";
$resp = simplexml_load_string($xml);
print_r ($resp);

Ответ: объект SimpleXMLElement ([token] => iibgo9d785iavs5av5a6lrimbn2r54) Кто-нибудь, пожалуйста, скажите мне, как получить токен ответа в объект SimpleXML?


person micksp    schedule 26.03.2012    source источник


Ответы (1)


Я думаю, что XML, возвращенный из API, на самом деле может выглядеть так:

‹? Xml version = '1.0'?> ‹Response> ‹token>‹! [CDATA [iibgo9d785iavs5av5a6lrimbn2r54]]> ‹token> ‹response>

SimpleXML не может анализировать объекты CDATA.

person Michael Pryor    schedule 04.04.2012