簡體   English   中英

如何用PHP顯示SimpleXMLElement

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM