Хорошо, поэтому я получаю вызов api из моей панели продавцов для хостинга. Я пытаюсь сделать это для своих стран:
<select name="countries"> <option value="n226">United States</option> </select>
Где значение равно имени тега, а отображение равно имени для каждой страны.
В настоящее время я использую Curl и php-код simplexml_load_string.
function test() { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "ApiCallUrl"); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, POST); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $string = curl_exec($ch); $xml = simplexml_load_string($string); print_r($xml); }
То, что у меня выше, возвращает то, что он должен возвращать (в слегка беспорядочном беспорядке)
SimpleXMLElement Object ( [command] => 0 [error_code] => 0 [ttl] => 56000 [countries] => SimpleXMLElement Object ( [n0] => SimpleXMLElement Object ( [name] => Afghanistan [iso2] => AF [phone_code] => 93 ) [n1] => SimpleXMLElement Object ( [name] => Albania [iso2] => AL [phone_code] => 355 )
Короче говоря, это то, что он возвращает в настоящее время.
Теперь, когда я меняю print_r($xml);
print_r($xml->name);
как показано в примере 1 на веб-сайте php: http://php.net/manual/en/function.simplexml-load-string.php, он возвращает только: SimpleXMLElement Object ( )
ни с чем другим.
Прямо сейчас я просто пытаюсь повторить название каждой страны, меня не обязательно беспокоит выбор сейчас.
Итак, зачем он работал с: print_r($xml);
но не с print_r($xml->name);
КСТАТИ:
Прежде чем я что-нибудь сделаю с api, он отобразит следующее: (я достиг этого, добавив print_r($string);
непосредственно после определения $ string
<ampa> <command></command>0 <error_code>0</error_code> <ttl>56000</ttl> <countries> <n0> <name>Afghanistan</name> <iso2>AF</iso2> <phone_code>93</phone_code> </n0> <n1> <name>Albania</name> <iso2>AL</iso2> <phone_code>355</phone_code> </n1>