2011-05-10 121 views
0

我在使用simplexml_load_file()使用非標準XML文件時遇到問題。這裏是我的代碼:從XML文件simplexml_load_file()與非標準XML文件

<?php 
$file = 'http://www.gostanford.com/data/xml/events/m-baskbl/2010/index.xml'; 
$xml = simplexml_load_file($file); 

echo 'Displaying user names of XML file...<br />'; 
foreach($xml as $event_date){ 
    echo 'Home: '.$event_date->hn.'<br />'; 
} 

?> 

正如你所看到的,什麼都沒有輸出,僅回顯的「家」

任何幫助是極大的讚賞。

+0

什麼是標準的XML文件?你能否提供一個有問題的xml文件的示例... – ircmaxell 2011-05-10 23:47:38

+0

更具體地說,什麼是「非標準XML文件」?它可以是XML,也可以不是。除非你想將粉筆描述爲非標準的奶酪。 – 2011-05-11 10:04:21

回答

3

這是XML數據,沒有什麼非標一下:

<game_days> 
    <event_date date="20101023"> 
     <event id="1271699" local_time="6:00 PM PT" eastern_time="21:00" hc="stan" vc="" hn="Stanford" vn="" hs="" vs=""/> 
    </event_date> 

你正在尋找的屬性是下面一個元素級別<event>
並訪問屬性改爲使用數組語法:

foreach($xml as $event_date){ 
    echo $event_date->event['hn']; 
+0

完美 - 謝謝你馬里奧!只是好奇,爲什麼把括號/撇號中的語法括起來更好?我可能需要更新一些其他文件:) – Ryan 2011-05-11 01:21:53

+0

它不適用於' - > attr'。這就是SimpleXML的行爲。只有使用數組符號才能訪問屬性,所以使用'foreach'迭代節點只會在默認情況下返回子節點。這些屬性「有點隱藏」。 – mario 2011-05-11 01:26:55

0

如果非標準你的意思是這裏一個不同的命名空間,你可以做什麼:

Namespaces

你可以得到的命名空間並使用它像一個「標準的XML」