чтение XML-канала с '-' в некоторых именах элементов - PullRequest
2 голосов
/ 09 мая 2011

Я пытаюсь прочитать xml-фид, в именах элементов которого есть '-'. Канал можно найти здесь.

http://forecast.weather.gov/MapClick.php?lat=42.19774&lon=-121.81797&FcstType=dwml

Я новичок в php, так что я, скорее всего, перебираю что-то простое. Я использую SimpleXML для чтения канала. Вот некоторый основной код, который я использую, чтобы выяснить мою проблему. Я прочитал wordedForecast и min tempature без проблем. Когда я пытаюсь прочитать значок условий, php не работает (это та часть, которую я прокомментировал внизу)

<?php 
$feed_url = 'http://forecast.weather.gov/MapClick.php?lat=42.19774&lon=-121.81797&FcstType=dwml';
$ch = curl_init($feed_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);

if (!empty($result))
{
$xml = new SimpleXMLElement($result);
print "<br> Discription\n";
$wordedForecast = $xml->data->parameters->wordedForecast->text;
foreach ($wordedForecast as  $value)
{
    print "<br> $value\n";
}
print "<br> Min Tempature\n";
$Tempature = $xml->data->parameters->temperature->value;
foreach ($Tempature as  $value)
{
    print "<br> $value\n";
}
    print"<br>conditions Icon link\n";
//This is one of the elements that I am stumped on how to read.
/*      $conditions= $xml->data->parameters->conditions-icon->icon-link;
foreach ($conditions as  $value)
{
    print "<br> $value\n";
}
*/  
}
?>

Я уверен, что ответ на этот вопрос прост, но у меня закончились идеи, как это сделать. У меня та же проблема с элементами <time-layout>, <probability-of-precipitation> и <weather-conditions>.

Спасибо за любые ответы или идеи о том, как заставить это работать.

1 Ответ

1 голос
/ 09 мая 2011

попробуй $xml->data->parameters->{'conditions-icon'}->{'icon-link'}

...