Разбор / извлечение внутренней части HTML-тега с использованием Perl? - PullRequest
2 голосов
/ 08 июля 2010

За последние пару дней я много искал по этому вопросу, но до сих пор не нашел четкого способа сделать это ... Я знаю, как просто проанализировать HTML с помощью Perl, чтобы получить текст между тегами, но мне нужно вместо этого фактически получить текст внутри тега, например:

<input type="hidden" name="next_webapp_page" value=""/>

Здесь я хотел бы извлечь весь тег (или, возможно, тег, исключающий слово «input» ... Я не хочу использовать Regex, я предпочитаю использовать парсер, любой совет приветствуется.

1 Ответ

4 голосов
/ 08 июля 2010

Используя HTML :: TokeParser :: Simple , найдите теги input и напечатайте, используя метод as_is.Пример:

#!/usr/bin/perl

use strict; use warnings;

use HTML::TokeParser::Simple;

my $parser = HTML::TokeParser::Simple->new(
    string => '<input type="hidden" name="next_webapp_page" value=""/>'
);

while ( my $tag = $parser->get_tag('input') ) {
    print $tag->as_is, "\n";
    for my $attr ( qw( type name value ) ) {
        printf qq{%s="%s"\n}, $attr, $tag->get_attr($attr);
    }
}

Вывод:

<input type="hidden" name="next_webapp_page" value=""/>

type="hidden"
name="next_webapp_page"
value=""
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...