Как получить весь внутренний контент узла XML, включая теги элементов? - PullRequest
4 голосов
/ 26 августа 2010

Используя XML::Twig, есть ли способ получить весь HTML-узел? Я не хочу текст узла, но весь HTML с тегами и все.

входной XML

<content> <p>blah blah <b> bla bla </b> </p>
<p> line 2 <i> test </i? </p>
</content>

код

my $twig = new XML::Twig(
    TwigRoots    => {'content' => 1},
    TwigHandlers => $twig_handlers
);
my $twig_handlers = {'count/p' => \&count_ps};

sub count_ps {
    my ($twig, $test) = @_;
    $Data .= $test->text();
}

$data должен показать мне весь HTML.

1 Ответ

5 голосов
/ 26 августа 2010

Используйте метод xml_string .

my $data;
XML::Twig->new(
    twig_handlers => {
        content => sub {
            my ($twig, $elt) = @_;
            $data = $elt->xml_string;
            $twig->purge;
        }
    }
)->parse('    <content> <p>blah blah <b> bla bla </b> </p>
    <p> line 2 <i> test </i> </p>
    </content>
')->purge;
...