2011-03-25 65 views
0

我正在使用以下腳本來獲取POST TITLE和RSS源的內容。它的結構是:(我想我沒有犯任何錯誤)我應該使用什麼xPath來顯示請求的數據?

<div id="feedBody"> 
<div id="feedContent"> 
<div class="entry"> 
<h3>TITLE OF POST</h3> 
<div base="http://feeds.feedburner.com/blogspot/hyMBI" 
    class="feedEntryContent" 
    > CONTENT OF POST </div> 
</div> 
</div> 
</div> 




<?php 
$dom = new DOMDocument; 
libxml_use_internal_errors(TRUE); 
$dom->loadHTMLFile('http://feeds.feedburner.com/blogspot/hyMBI'); 
libxml_clear_errors(); 

$xPath = new DOMXPath($dom); 
$links = $xPath->query('????????????????'); 
foreach($links as $link) { 
    printf("%s \n", $link->nodeValue); 
} 
?> 

我應該用什麼xPath來獲取數據?有什麼辦法讓他們分開? 感謝百萬,希望這是我對我的項目的最後一個問題...

+0

$ dom-> load()方法,而不是$ dom-> loadHTMLFile – SilverbackNet 2011-03-25 00:49:06

回答

0

首先,您應該使用load而不是loadHTMLFile加載XML。

通過您的變量名稱「$ links」來判斷,我想您想要<item>元素中的<link>元素的值。因此構建一個xpath查詢,它只是說://item/link

+0

您好,感謝您的回覆。上面的代碼是我通過教程找到的一個例子。我已經完成了你所說的,但是我怎樣才能得到標題和內容而不是鏈接? – EnexoOnoma 2011-03-25 01:05:20

+0

這樣做會以'// item',然後爲每個節點發現使用'$ xPath->查詢('/ title',$項目)'獲取所有''節點拿到冠軍的最簡單方法和'$ xPath-> query('/ description',$ item)'獲取內容。 – Anomie 2011-03-25 01:07:58

+0

正是我想要的線索!正如我在RSS的來源中看到的那樣,我輸入的路徑是錯誤的。您的項目/鏈接項目/標題項目/說明發揮了訣竅!現在我試圖分離圖像和內容。我讀了一些關於strpos的地方,但如果你能看看它,那會很棒。再次感謝! – EnexoOnoma 2011-03-25 15:25:55

0

基本的XPath://div[@class="entry"]讓你的所有條目的數組。您可以通過//div[@class="entry"][1]獲得第一個(或唯一)條目。就這樣,你可以使用h3拿到冠軍節點的文本,並div[1]得到的內容(如果它保證只有一個,否則指定類)。

你可以把它們放在一起就像//div[@class="entry"][1]/h3如果你喜歡,那麼你只需要查詢根節點。否則,保存新的節點,下一個查詢,如:

$entries = $xPath->query('//div[@class="entry"][1]'); 
foreach($entry in $entries) { 
    $title = $xPath->evaluate('h3[1]',$entry); 
    $post = $xPath->evaluate('div[1]',$entry); 
} 

如果你的RSS返回帖子整組,可以通過全團離開過第一[1]和循環這種方式。

+0

您好,謝謝您的回覆..但它不能顯示任何東西,即使使用// div [@ class =「entry」] – EnexoOnoma 2011-03-25 01:15:18

+0

上面的HTML是您正在訪問的Feed的實際片段嗎?如果不是,則發佈實際提要的一部分。 – SilverbackNet 2011-03-25 01:22:19

+0

'// DIV [@類= 「進入」] [1]'」不做你說什麼它看這裏:。http://stackoverflow.com/questions/4672997/xslt-select-all-nodes-含一個特定子串/ 4674372#4674372 – 2011-03-25 14:55:47

相關問題