ds0409 2013-08-12 22:25
浏览 30
已采纳

SimpleXML子元素属性

<form action='' method='post'>
<input type='text' name='location'>
<input type='submit' name='submit'>
</form>

<?php

if(isset($_POST['submit']) && !empty($_POST['location'])) {

$input = $_POST['location'];
$url = 'http://api.openweathermap.org/data/2.5/forecast?q='.strtolower($input).'&mode=xml';
$xml = file_get_contents($url, false);
$xml = simplexml_load_string($xml);
echo '<b>Viewing Weather For:</b> '. $xml->location->name;
echo '<b>Temperature:</b> '. $xml->forecast->children('temperature')->attributes('value');

}

Weather API: http://api.openweathermap.org/data/2.5/forecast?q=london,uk&mode=xml

I am trying to get the value of the temperature

echo '<b>Temperature:</b> '. $xml->forecast->children('temperature')->attributes('value');

This is where im stuck

I would really appreciate your answers :)

  • 写回答

1条回答 默认 最新

  • dongshai1944 2013-08-12 23:25
    关注

    To get the value attribute of the first occurence of the temperature node, do:

    $result = $xml->forecast[0]->time[0]->temperature["value"];
    

    To take <time> into account, use xpath:

    $results = $xml->xpath("//time");
    

    this will select all time nodes, now loop:

    foreach ($results as $result)
        echo "temperature for $result[from] to $result[to]: {$result->temperature['value']}<br />";
    

    see it working: http://codepad.viper-7.com/wuUbEv

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 如何实验stm32主通道和互补通道独立输出
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题