我需要解析一些HTML代码。标签ID的模式为:
<tr id="date">.....</tr>
<tr id="band01"><td>field1</td><td>field2</td></tr>
<tr id="band02">...contents...</tr>
.....
<tr id="(others">.....
我正在使用perl Mojo :: dom parser,并想提取所有以"频段"以下数字开始的名称及其内容的实际ID。
我该如何实现?
e [foo^=" bar"]选择器匹配的任何元素都以" bar"开头的" foo"属性。因此,您可以使用:
my $dom = Mojo::DOM->new($html);
my $rows = $dom->find('tr[id^="band"]');
$rows
将是Mojo :: Mojo :: Dom对象的集合,代表每个匹配元素及其各自的内容。例如,获取匹配ID的列表:
my @ids = $rows->map(attr => 'id')->each;
或更标准的perl:
my @ids = map { $_->{id} } @$rows;