您好我从未使用过xml但需要现在,所以我正在努力学习,但我正在努力学习这个结构。这只是为了显示某人网站顶部的天气。
我想使用此xml链接ftp://ftp2.bom.gov.au/anon/gen/fwo/IDV10753.xml
显示墨尔本天气基本上我正在尝试让墨尔本预测3天(什么都有效),有一个预测期间数组[0]到[6]
我用这个print_r来查看结构:
$url = "linkhere";
$xml = simplexml_load_file($url);
echo "<pre>";
print_r($xml);
并试图获得一些东西:
$url = "linkhere";
$xml = simplexml_load_file($url);
$data = (string) $xml->forecast->area[52]->description;
echo $data;
这对我没有任何帮助(预计'墨尔本'),显然我需要学习,但如果有人可以提供帮助,那就太棒了。
答案 0 :(得分:0)
由于description
是<area>
的属性,因此您需要使用
$data = (string) $xml->forecast->area[52]['description'];
我也不会依赖 Melbourne 作为第52个区域节点(尽管这取决于数据维护者)。我会使用aac
属性,因为这似乎是唯一的,例如
$search = $xml->xpath('forecast/area[@aac="VIC_PT042"]');
if (count($search)) {
$melbourne = $search[0];
echo $melbourne['description'];
}
答案 1 :(得分:0)
这是一个适合您的工作示例:
<?php
$forecastdata = simplexml_load_file('ftp://ftp2.bom.gov.au/anon/gen/fwo/IDV10753.xml','SimpleXMLElement',LIBXML_NOCDATA);
foreach($forecastdata->forecast->area as $singleregion) {
$area = $singleregion['description'];
$weather = $singleregion->{'forecast-period'}->text;
echo $area.': '.$weather.'<hr />';
}
?>
您可以编辑上述示例以提取所需的标记和属性。
永远记住,理解XML对象结构的一个好习惯是使用例如print_r
在您提议的XML的特定情况下,通过属性( description )指定城市。因此,您必须使用['attribute name'](see here for more information)来阅读这些属性。
另请注意,标记{'forecast-period'}
包含在大括号中,因为它包含连字符,否则不会生成错误。