Мне нужно игнорировать или удалить весь текст между всеми элементами HTML, чтобы я мог создать пустой шаблон на заданной веб-странице.
Я выполняю синтаксический анализ с использованием модуля perl HTML :: TreeBuilder и HTML :: Element.
Я пробовал метод ignore_text, указанный в документации, но он не дает правильных результатов.
Я также пытался использовать DOMXpath с PHP, чтобы сделать то же самое, и результаты казались слишком громоздкими для управления. Регекс может работать, но это последнее средство для меня.
Это часть моего текущего кода, очень простая. Дно просто выводится в файл. Весь код работает, мне просто нужно форматирование, чтобы я мог генерировать файлы шаблонов.
my $url= "http://www.example.com";</p>
<pre><code>my $page = get($url) or die $!;
my $tree = HTML::TreeBuilder->new_from_content($page);
$tree->parse_file($page);
$tree->ignore_text;
$tree->elementify;
open OUTPUT, "+>".$body;
my $output = $tree->as_HTML;
print OUTPUT $output;
close OUTPUT;
Заранее спасибо за помощь!
РЕДАКТИРОВАТЬ: Я обнаружил проблему - игнорировать текст работает только при разборе физического файла. Мне пришлось сохранить страницу как временный файл для анализа, а затем вывести его так, как я хотел, без текста, тогда я просто удалил ссылку ($ tmp) внизу, чтобы удалить файл. С тех пор мой сценарий стал намного сложнее с чтением и записью в базу данных, и каждый раз, когда мне нужно создать этот временный файл, который немного раздражает ...
Спасибо за ответ ниже!