使用PHP和simpleXML解析XML天气预报数据

时间:2017-06-27 11:53:55

标签: php xml

我正在尝试使用PHP simpleXML扩展来解析以下XML天气预报数据:

http://www.pakenhamweather.info/test/IDV10753.xml

我已经多次尝试解析这个XML但无济于事。以下是一个例子:

$product = simplexml_load_file("http://www.pakenhamweather.info/test/IDV10753.xml");

foreach ($product->forecast->area[2]->forecast-period[0] as $blah) {
    printf(
    "<p>Forecast Icon: $s</p><p>Precipitation Range: $s</p>"
    $blah->element["forecast_icon_code"]
    $blah->element["precipitation_range"]
    );
}

出于本例的目的,我通过选择'area [2]'和'forecast-period [0]'简化了示例,但理想情况下,我想通过'description'指定'area'属性和'forecast-period'基于'index'属性。

非常感谢任何帮助。提前谢谢。

1 个答案:

答案 0 :(得分:0)

您可以尝试使用以下代码按属性获取区域,并按属性获取forecast-period。

$product = simplexml_load_file("http://www.pakenhamweather.info/test/IDV10753.xml");
$forecasts = $product->forecast->xpath("//area[@description='Mildura']/forecast-period[@index='1']");
foreach ($forecasts as $forecast) {
    $forecast_icon_code = $forecast->xpath("element[@type='forecast_icon_code']")[0];
    $precipitation_range = $forecast->xpath("element[@type='precipitation_range']")[0];
    echo $forecast_icon_code . "===" . $precipitation_range;
}

只需替换您要选择的属性值