2016-08-01 54 views
2

我剛開始玩xpath並需要一些幫助。PHP使用xpath輸出

我使用TVDB的API並具有以下XML(簡稱爲問題)

<Data> 
    <Episode> 
     <id>4762752</id> 
     <EpisodeName>I.</EpisodeName> 
     <EpisodeNumber>1</EpisodeNumber> 
     <SeasonNumber>1</SeasonNumber> 
    </Episode> 
    <Episode> 
     <id>4762756</id> 
     <EpisodeName>II.</EpisodeName> 
     <EpisodeNumber>2</EpisodeNumber> 
     <SeasonNumber>1</SeasonNumber> 
    </Episode> 
</Data> 

我想所有的情節細節,其中集數=東西,季節數等於什麼。

我想我有xpath查詢正確但我不能(或不知道如何)訪問數據後。

我迄今爲止代碼:

$tvdbSeriesData = simplexml_load_file($tvdbSeriesFeed); 

$tvdbEpisodes = $tvdbSeriesData->xpath("//Data/Episode[SeasonNumber/text() = '$seasonNumber'][EpisodeNumber/text() = '$episodeNumber']"); 

echo $tvdbEpisodes->id; 

這是我第一次嘗試使用XPath,所以道歉,如果這是小事,但可能有人把我在正確的方向還是什麼我做錯了給我解釋一下這裏。

感謝

+0

它看起來像工作正常,如果你嘗試的print_r($ tvdbEpisodes); –

回答

1

xpath函數返回Array與XPath查詢的結果:

$tvdbSeriesFeed = '<Data> 
    <Episode> 
     <id>4762752</id> 
     <EpisodeName>I.</EpisodeName> 
     <EpisodeNumber>1</EpisodeNumber> 
     <SeasonNumber>1</SeasonNumber> 
    </Episode> 
    <Episode> 
     <id>4762756</id> 
     <EpisodeName>II.</EpisodeName> 
     <EpisodeNumber>2</EpisodeNumber> 
     <SeasonNumber>1</SeasonNumber> 
    </Episode> 
</Data>'; 

$tvdbSeriesData = simplexml_load_string($tvdbSeriesFeed); 
$seasonNumber = 1; 
$episodeNumber = 1; 
$tvdbEpisodes = $tvdbSeriesData->xpath("//Data/Episode[SeasonNumber/text() = '$seasonNumber'][EpisodeNumber/text() = '$episodeNumber']"); 

echo $tvdbEpisodes[0]->id; // 4762752 

我使用的功能simplexml_load_string只爲示例工作。

你也可以的var_dump結果:

var_dump($tvdbEpisodes); 

將輸出:

array(1) { 
    [0] => 
    class SimpleXMLElement#3 (4) { 
    public $id => 
    string(7) "4762752" 
    public $EpisodeName => 
    string(2) "I." 
    public $EpisodeNumber => 
    string(1) "1" 
    public $SeasonNumber => 
    string(1) "1" 
    } 
}