[英]how to display SimpleXMLElement with php
嗨,我從未使用過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;
這沒有給我任何東西(預期是“墨爾本”),顯然我需要學習,而且我可以,但是如果有人可以幫助的話,那會很棒。
由於description
是<area>
的屬性,因此您需要使用
$data = (string) $xml->forecast->area[52]['description'];
我也不會依賴墨爾本成為第52個區域節點(盡管這實際上取決於數據維護者)。 我會通過它的aac
屬性來aac
因為這似乎是唯一的,例如
$search = $xml->xpath('forecast/area[@aac="VIC_PT042"]');
if (count($search)) {
$melbourne = $search[0];
echo $melbourne['description'];
}
這是為您工作的示例:
<?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'](屬性名稱)來閱讀這些屬性( 有關更多信息,請參見此處 )。
還要注意,標簽{'forecast-period'}
被括在大括號中,導致其包含連字符,否則將不會產生錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.