使用
HTML :: TreeBuilder – 或Mojo :: DOM – 我想抓取内容但保持顺序,这样我就可以将文本值放入一个数组中(然后用一个变量替换文本值)模板用途)
但这在TreeBuilder中
my $map_r = $tree->tagname_map(); my @contents = map { $_->content_list } $tree->find_by_tag_name(keys %$map_r); foreach my $c (@contents) { say $c; }
不返回订单 – 当然哈希没有订购.那么,如何从root访问树并保持返回的值序列?递归地走树?基本上,我想使用’as_text’方法,除了每个元素. (遵循这个nice idea,但我需要所有元素)
解决方法
这更好(使用Mojo :: DOM):
$dom->parse($html)->find('*')->each( sub { my $text = shift->text; $text =~ s/\s+/ /gi; push @text,$text; } );
但是,欢迎任何进一步的评论.