2011-05-10 92 views
0

我试图读取名称中包含“ - ”的XML元素。饲料可以在http://forecast.weather.gov/MapClick.php?lat=42.19774&lon=-121.81797&FcstType=dwml找到在我最后一个问题,我只是想读任何一个。 reading a XML feed with '-' in some of the element names现在我正试图读一个特定的(除第一个之外),我再次陷入困境。从元素名称中用' - '读取多个元素

这将使我获得第一次布局和第一次开始有效时间。

$time = $xml->data->{'time-layout'}->{'start-valid-time'}; 

我在第二次布局后,我想通读开始有效时间元素的属性。

下面是我找到的方法。我在下面做了什么不能成为这方面的正确方法。一个人通常应该如何去做这件事?

谢谢。

 $time = $xml->data->{'time-layout'}; 
    $time2= $time[1]->{'start-valid-time'}; 
    $count= 14; 
     for ($i = 0; $i <=$count ; $i++) 
     { 
     echo $time2[$i]->attributes(); 
     print "<br>\n"; 
     } 

回答

0

你要做的就是正确的。你可以缩短

$dwml = simplexml_load_file('http://…'); 
foreach ($dwml->data->{'time-layout'}[1]->{'start-valid-time'} as $time) { 
    echo $time; 
} 

或使用XPath

$dwml = simplexml_load_file('http://…'); 
foreach ($dwml->xpath('/dwml/data/time-layout[2]/start-valid-time') as $time) { 
    echo $time; 
} 
0

对于这种类型的查询XPath被发明

+0

【如何写一个很好的答案(http://meta.stackexchange.com/questions/7656/how-do-i-write -a好回答对一个个问题) – Gordon 2011-05-10 07:57:48