我正在尝试使用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'属性。
非常感谢任何帮助。提前谢谢。
答案 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;
}
只需替换您要选择的属性值