我想返回所有"名称"来自请求的Yahoo YQL结果的值,但我得到的只是一个空页:(这是我的代码到目前为止:
$input = $_GET['str'];
$yql = "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20geo.places%20where%20text%20='".$input."'";
$feed = file_get_contents($yql);
$xml = simplexml_load_string($feed);
echo $xml->query->results->place->name;
如何解析并返回名称为" name"的所有XML值?
返回的XML结构示例:sample
非常感谢您的帮助! :)
答案 0 :(得分:1)
由于您已经获得了在yahoo yql上查询所需的值,以获取值,因为这是一个查询,它产生了许多结果。你需要循环它,因为它返回了多个结果。
考虑这个例子:( 约克作为例子。)
$input = 'york';
$yql = "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20geo.places%20where%20text%20='".$input."'";
$contents = file_get_contents($yql);
$xml = new SimpleXMLElement($contents);
$places = array();
foreach($xml->results->place as $key => $item) {
$country_info = $item->country->attributes();
$places[] = array(
'placeTypeName' => (string) $item->placeTypeName,
'name' => (string) $item->name,
'country' => array(
'code' => (string) $country_info['code'],
'type' =>(string) $country_info['type'],
'woeid' => (string) $country_info['woeid'],
),
);
}
print_r($places);
name
的所有值都在$places
内: