:
<html>
<head>
<title>Appleseed Farm</title>
</html>
<body>
<table>
<tr>
<td>Col1</td>
<td>Col2</td>
<td><img src="blah/blah.jpg"></td>
<td></td>
</tr>
</table>
<div>Some random text</div>
<p>Random image of the day: <img src="random.jpg"></p>
</body>
</html>
は、テキストの周りに私の '@' タグで、次のようになります。たとえば
は、次のHTMLを与えられました。私はHTML :: Elementページを調べた後、それを理解しました。
use strict;
use warnings;
use HTML::TreeBuilder;
use feature ':5.10';
my $root = HTML::TreeBuilder->new_from_file(\*DATA);
$root->elementify;
for my $e ($root->look_down (
sub {
my $tag = $_[0]->tag();
grep(/^$tag$/, qw(td div p title span))
}
))
{
#Do an in-place replacement
foreach my $item_r ($e->content_refs_list) {
next if ref $$item_r;
$$item_r =~ s/^(.+)$/\@$1\@/g;
}
}
say $root->as_HTML (undef, " ", {});
__DATA__
<html>
<head>
<title>Appleseed Farm</title>
</html>
<body>
<table>
<tr>
<td>Col1</td>
<td>Col2</td>
<td><img src="blah/blah.jpg">Col 3</td>
<td>cat</td>
</tr>
</table>
<div>Some random text</div>
<p>Random image of the day: <img src="random.jpg"></p>
</body>
はい、方法があります。実際にはいくつかあります。しかし、ソフトウェア勧告を求めているのは残念ながら、スタックオーバーフローに関する話題です。あなた自身でこの作業を始める必要があります。問題が発生した場合は、喜んで支援を提供します。私の場合、HTMLのテキストノードを置き換える方法やXMLを解析する方法などの検索を開始します。 [CPAN](https://metacpan.org)でHTMLとXMLを探していると、すでに良い出発点があるはずです。 – simbabque
@simbabqueは良いアドバイスだと言います。それをCPANと(多くの)既存のSOの投稿の両方で検索します。具体的なものを少なくとも提供するために、私は[HTML :: TreeBuilder](http://search.cpan.org/~kentnl/HTML-Tree-5.07/lib/HTML/TreeBuilder.pm)を使ってHTMLを解析して処理します。 - しかし、もっとたくさんあります。 – zdim