2013-05-27 42 views
1

所以我開始在php庫(5.5)中使用simplexml解析器..我想我明白了什麼是ono,但顯然不是......所以我有一個XML文件看起來這liek使用simplexml解析器爲php的簡單場景

<?xml version="1.0" encoding="UTF-8" ?> 
<Data><Series> 
    <Genre>|Animation|Comedy|</Genre> 
    <IMDB_ID>tt0096697</IMDB_ID> 
    <Language>en</Language> 
    <SeriesName>The Simpsons</SeriesName> 
    . 
    . 
    . 
</Series> 
<Episode> 
    . 
    . 
</Episode> 
<Episode> 
    . 
    . 
</Episode> 
</Data> 
</xml> 

現在我開始抓東西,其間的情節標籤工作,一切是偉大的......現在我想獲得的<SeriesName>所以在我的PHP代碼:

$series = simplexml_load_file('en.xml'); 
$series_name = $series->SeriesName; 

但是,這似乎並不工作,我也試過

$series_name = $series->Data->Series->SeriesName 

..這將返回錯誤,試圖獲取非對象的屬性。我看了一些教程,似乎無法理解我做錯了什麼......長時間纏繞着我知道,但我花了一些時間研究沒有運氣,anyhelp會很棒,因爲我確信它是愚蠢的東西

回答

1

改變這一行:

$series_name = $series->Data->Series->SeriesName; 

要:

$series_name = $series->Series->SeriesName; 
+0

美麗...加載的數組爲什麼我不需要通過''標籤步進以備將來參考? – brendosthoughts

+0

由於數據是根標記,因此只能有1個根標記,因此您不必通過數據,因爲您已通過打開xml文件選擇了此選項。希望這個解釋可以幫助你 – Perry

+0

好吧,再次感謝真棒! – brendosthoughts

0

使用var_dump($series)print_r($series)查看您的SimpleXMLElement對象的內容。

+0

好一個數組?這怎麼回答我的問題? ...它輸出通過調用'simplexml_load_file('en.xml');' – brendosthoughts

0

使用正則表達式

preg_match_all('%(?<=<SeriesName>).*(?=</SeriesName>)%si', $subject, $result, PREG_PATTERN_ORDER); 

$結果將是您的SeriesNames