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 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 R语言卸载之后无法重装,显示电脑存在下载某些较大二进制文件行为,怎么办
  • ¥15 java 的protected权限 ,问题在注释里
  • ¥15 这个是哪里有问题啊?
  • ¥15 关于#vue.js#的问题:修改用户信息功能图片无法回显,数据库中只存了一张图片(相关搜索:字符串)
  • ¥15 texstudio的问题,