HTML文件属于void值吗,使用HTML :: TreeBuilder查找html文件中的值
找到與匹配內容
,在這種情況下,“磁盤空間使用情況”,然后找到下一個。一旦你有一個元素樹:
my $usage = $t->look_down(
_tag => 'td',
sub {
$_[0]->as_trimmed_text() =~ /^Disk Space Usage$/
}
)->right()->as_trimmed_text();
您可能想包裝在一個eval塊中,以防look_down沒有找到匹配。
HTML :: Element中的樹導航方法是有效使用HTML :: TreeBuilder的關鍵部分。
莫希尼問:“為什么不工作?”
(格式化由我添加)
use strict;
use warnings;
use HTML::TreeBuilder;
my $tree = HTML::TreeBuilder->new_from_file("index.html");
my $disk_value; my $disk_space;
for ($tree->look_down(_tag => q{tr}, 'class' => 'row-odd')) {
$disk_space = $tree->look_down(
_tag => q{td},
'class' => 'stats_left'
)->as_trimmed_text;
if ($disk_space eq 'Home Directory') {
$disk_value = $tree->look_down(_tag => q{td}, 'class' => 'stats_right')
->right()
->as_trimmed_text();
}
}
print STDERR "my home value is $disk_space : $disk_value\n";
look_down開始從你調用它的根節點,低頭元素樹(這些樹木長得顛倒),并返回要么匹配的節點列表或第一個匹配節點,具體取決于上下文。
由于所有向下看的調用都在樹上,因此每次循環都會重復找到相同的節點。
你的循環應該看起來更像是這樣的:
my %table_stuff;
for my $odd_row ($tree->look_down(_tag => q{tr}, 'class' => 'row-odd')) {
$heading = $odd_row->look_down(
_tag => q{td},
'class' => 'stats_left'
);
$table_stuff{ $heading->as_trimmed_text() } = $heading->right()->as_trimmed_text();
}
該填充的哈希表與元素。
如果你只想要一個值,根本不要使用循環。 look_down已經充當一個循環。
my $heading = $t->look_down(
_tag => 'td',
sub {
$_[0]->as_trimmed_text() =~ /^Home Directory$/
}
);
my $value = $heading->right();
# Now $heading and $value have HTML::Element nodes that you can do whatever you want with.
my $disk_value = $value->as_trimmed_text();
my $disk_space = $heading->as_trimmed_text();
總結
以上是生活随笔為你收集整理的HTML文件属于void值吗,使用HTML :: TreeBuilder查找html文件中的值的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 苹果一键越狱工具_最新苹果越狱工具现世,
- 下一篇: 服务器装系统用哪个好,服务器系统重装用哪