2013-09-02 1 views
5

это код, я используюПоиск и удаление HTML-теги с PHP Simple HTML DOM Parser

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

?> 

это найти строку 15 таблицы. то, что я хочу сделать, это удалить эту строку полностью

я уже пытался

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

но dosn't похоже на работу

я попытался найти информацию о http://simplehtmldom.sourceforge.net/manual.htm но онлайн dosn документ 't содержит много информации.

ответ

0

simple_html_dom, похоже, не позволяет удалить.

Попробуйте с этим вместо того, чтобы:

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

спасибо, но это не работает –

+0

Я отредактировал мой ответ на предыдущий вопрос, я думаю, что мог бы работать .. – juanra

+0

сценарий перестает отвечать после того, как я использую ваш код. Возможно ли это сделать с помощью phpquery или любой другой библиотеки. –

0

здесь у вас есть рабочий пример (работает как в Linux, но легко адаптируется).

Файл 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(); 
?> 

Если index.html содержит:

<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> 

Положите оба файла в том же каталоге и выполнить это в консоли:

php dom_test.php 

Выход будет появляется без строки «HELLO there».

Я надеюсь, что это поможет вам.

0

Вы можете сделать это с помощью simple_html_dom, просто установите outertext к значению InnerText

foreach($html->find('div') as $div) { 
    $div->outertext = $div->innertext; 
} 
Смежные вопросы