Как заменить все теги ul и li на div с помощью PHP Simple HTML DOM Parser?

Хорошо, я хочу создать "мобилизатор веб-сайтов" с помощью PHP Simple HTML DOM Parser. На данном этапе я хочу

  1. измените все теги 'ul' и 'li' на тег 'div' и
  2. измените все элементы таблицы (например, table,tr,td,th) на div. Я попытался обойти первую проблему следующим образом:

,

$html=new new simple_html_dom();
$html>load_file($sourceurl);

$div="div";
foreach ($html->find('ul') as $element) {  
 $element=$div;
 }

Это кажется скучным, но я не могу найти другого решения. Я не одобряю использование preg_matchХотя я не знаю, может ли это дать мне желаемый результат. Любая помощь будет оценена.

2 ответа

Это возможно:

$html=new new simple_html_dom();
    $html>load_file($sourceurl);

    foreach ($html->find('ul') as $element) {  
     $element->innertext = "<div>".$element->innertext."</div>";     
    }

Конечно, вы можете сделать то же самое с таблицей. Более подробно: простое руководство по HTML DOM Parser

$html=new new simple_html_dom();
$html>load_file($sourceurl);

$replace="ul,li,table,tr,td,th";  
foreach($html->find($replace) as $key=>$element){
    $html->find($replace,$key)->outertext="<div>".$element->innertext."</div>"
}

это заменяет все элементы из $replace массив для <div> в $html DOM без изменения содержимого этих тегов. Все хранится в $html DOM.

Как вы можете видеть, вы не можете использовать $element изменить что-либо в $html, даже используя $element в качестве ссылки, поэтому вы должны получить доступ $html непосредственно.

Другие вопросы по тегам