【问题标题】:Finding the contents under div with specific id patterns using MOJO::DOM使用 MOJO::DOM 查找具有特定 id 模式的 div 下的内容
【发布时间】:2019-05-04 12:33:04
【问题描述】:

我需要解析一些 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 解析器,并且想要提取名称以“band”开头并后跟一个数字的所有实际 id 及其内容。

我怎样才能做到这一点?

【问题讨论】:

    标签: perl mojo


    【解决方案1】:

    E[foo^="bar"] 选择器匹配任何具有以“bar”开头的“foo”属性的元素。因此您可以使用:

    my $dom = Mojo::DOM->new($html);
    my $rows = $dom->find('tr[id^="band"]');
    

    $rows 将是 Mojo::DOM 对象的 Mojo::Collection,表示每个匹配元素及其各自的内容。例如,要获取匹配的 ID 列表:

    my @ids = $rows->map(attr => 'id')->each;
    

    或者使用更标准的 Perl:

    my @ids = map { $_->{id} } @$rows;
    

    【讨论】:

      猜你喜欢
      • 2011-10-28
      • 2010-12-02
      • 1970-01-01
      • 2023-01-14
      • 1970-01-01
      • 2011-08-09
      • 2023-01-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多