简单 XML 子元素属性


SimpleXML child element attributes

<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');
}

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

我正在尝试获取温度值

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

这就是我卡住的地方

我真的很感激你的回答:)

若要获取temperature节点第一次出现的 value 属性,请执行以下操作:

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

要考虑<time>,请使用xpath

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

这将选择所有time节点,现在循环:

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

查看它的工作原理:http://codepad.viper-7.com/wuUbEv