2014-01-17 25 views
0

好日子大家, 我很新與phpquery,這是我的第一篇文章在這裏計算器爲我無法找到正確的語法的一個原因phpquery鏈接。我知道有人知道我在找什麼。如何phpquery鏈(幾乎一切都可以是一個鏈)

我只是想刪除一個div裏面一定格。

<div id = "content"> 
     <p>The text that i want to display</p> 
     <div class="node-links">Stuff i want to remove</div> 
</content> 

這幾行代碼運行完美

pq('div.node-links')->remove(); 
$text = pq('div#content'); 
print $text; //output: The text that i want to display 

但當我

$text = pq('div#content')->removeClass('div.node-links'); //or 
$text = pq('div#content')->remove('div.node-links'); 

//output: The text that i want to display (+) Stuff i want to remove 

誰能告訴我,爲什麼第二個代碼塊不工作?

謝謝!

回答

0

的第一行代碼只會工作,如果你想從div.node-links刪除類,它不會刪除該節點。

如果你試圖刪除您需要將其從更改類:

$text = pq('div#content')->removeClass('div.node-links'); 
// to 
$text = pq('div#content')->find('.node-links')->removeClass('node-links')->end(); 

這將輸出:

<div id="content"> 
    <p>The text that i want to display</p> 
    <div>Stuff i want to remove</div> 
</div> 

至於代碼的第二行..我不是確切地說,爲什麼它不起作用,看起來好像你沒有選擇.node-links,但是我能夠使用這些獲得理想的結果。

// $markup = file_get_contents('test.html'); 
// $doc = phpQuery::newDocumentHTML($markup); 
$text = $doc->find('div#content')->children()->remove('.node-links')->end(); 

// or 

$text = pq('div#content')->find('.node-links')->remove()->end(); 

// or 

$text = pq('div#content > *')->remove('.node-links')->parent(); 

希望幫助

+0

謝謝R-SAL先生,好像第二個工作 $文字= PQ( '#DIV內容') - >查找(」節點鏈接) - >刪除() - >結束(); 我已經發現的另一種方式中,由於元件被存儲在數據庫中,我增加兩個字段代替,用於fullContent字段和字段,需要加以除去的元素()。我開發了一個動態的Scrapper爲多個RSS源(我有200飼料網址截至目前)。 我喜歡做刮更加簡單phpquery,但唯一的問題是他們的文檔。無論如何,非常感謝你的回答,乾杯! – 1mr3yn

0

由於remove()不帶任何參數,你可以這樣做:

$text = pq('div#content div.node-links')->remove(); 
+0

我試過,但顯示的是「的東西,我想刪除」, – 1mr3yn

+0

@ 1mr3yn你確定你的期望格刪除是'節點links'。我只能看到帶有「鏈接」類的div? – Felix

+0

對不起我的錯誤,我會更新我的帖子。我只是想擺脫某一類的DIV中, – 1mr3yn

相關問題