2013-09-02 99 views
5

này là mã tôi đang sử dụngTìm và loại bỏ html tags với PHP Simple HTML DOM Parser

<?php 
      include 'simple_html_dom.php'; 
      $html = file_get_html('index.html'); 
      echo $html->find('tr', 15); 

?> 

này sẽ tìm thấy hàng 15 của bảng. những gì tôi muốn làm là để loại bỏ hàng đó hoàn toàn

tôi đã cố gắng

$html->find('tr', 15)=null; 

nhưng điều đó dường như làm việc Dosn't

tôi đã cố gắng tìm kiếm các thông tin về http://simplehtmldom.sourceforge.net/manual.htm nhưng dosn tài liệu trực tuyến Không chứa nhiều thông tin

Trả lời

0

simple_html_dom dường như không cho phép xóa.

Hãy thử với thay này:

$html = new DOMDocument(); 
$html->loadHTMLFile('index.html'); 
$element = $html->getElementsByTagName('tr')->item(15); 
$element->parentNode->removeChild($element); 
+0

cảm ơn, nhưng điều này không làm việc –

+0

Tôi đã chỉnh sửa câu trả lời trước đây của tôi, tôi nghĩ rằng có thể làm việc .. – juanra

+0

kịch bản dừng đáp ứng sau khi tôi sử dụng mã của bạn. Có thể làm như vậy với phpquery hoặc bất kỳ thư viện nào khác –

0

ở đây bạn có một ví dụ làm việc (chỉ hoạt động như là trong Linux, nhưng có thể dễ dàng thích nghi).

file dom_test.php:

#!/usr/bin/php 
<?php 
    $html = new DOMDocument(); 
    $html->loadHTMLFile('index.html'); 
    $element = $html->getElementsByTagName('tr')->item(1); 
    $element->parentNode->removeChild($element); 

    echo $html->saveHTML(); 
?> 

Trường hợp index.html chứa:

<html> 
    <head></head> 
    <body> 
     <table> 
      <tr><td> hi </td><td>there</td></tr> 
      <tr> 
       <td> HELLO </td> 
       <td> there </td> 
      </tr> 
      <tr><td> hi </td><td>there</td></tr> 
     </table> 
    </body> 
</html> 

Đặt cả các file trong cùng thư mục và thực hiện điều này trong bảng điều khiển

php dom_test.php 

Sản lượng sẽ xuất hiện mà không có hàng "HELLO there".

Tôi hy vọng điều đó sẽ giúp ích cho bạn.

0

Bạn có thể làm điều này với simple_html_dom, chỉ cần đặt các outertext với giá trị của innerText

foreach($html->find('div') as $div) { 
    $div->outertext = $div->innertext; 
} 
Các vấn đề liên quan