여기 HTML :: TreeBuilder을 사용하는 방법은
#! /usr/bin/perl
use warnings;
use strict;
use HTML::Parser;
my $p = HTML::Parser->new(api_version => 3,
start_h => [\&start, "tagname, attr, text, skipped_text"],
end_h => [\&end, "tagname, text, skipped_text"],
);
$p->parse_file(\*DATA);
my @switch_span_end;
sub start {
my($tag,$attr,$text,$skipped) = @_;
print $skipped;
unless ($tag eq 'span' && ($attr->{class}||"") eq "a") {
print $text;
return;
}
push @switch_span_end => 1;
print "<b>";
}
sub end {
my($tag,$text,$skipped) = @_;
print $skipped;
if (@switch_span_end && $tag eq "span") {
print "</b>";
pop @switch_span_end;
}
else {
print $text;
}
}
__DATA__
<span class="a">text</span><span class="a">text</span><span id="b">text</span>
는 출력 :
<b>text</b><b>text</b><span id="b">text</span>
글쎄, 어떤 HTML을 사용하는 방법에 대한 :: 매니퓰레이터 didn 히 일하지 않니? –
HTML :: Manipulator :: replace는 클래스 속성 (ID 만 사용)을 사용하여 요소를 찾을 수 없으며 속성 만 변경 태그를 허용 할 수 없습니다. –
파일을 읽고 계신가, 데이터를 정확히 얼마나 받고 있습니까? – ashurexm