【问题标题】:How to put values from a look_down tree array's HTML tag into a regular array in Perl?如何将look_down树数组的HTML标记中的值放入Perl中的常规数组中?
【发布时间】:2014-04-04 23:02:27
【问题描述】:

这是我得到的一段代码:

#!/usr/bin/perl
use strict;
use warnings;
use LWP::Simple;
use Time::Piece;
use HTML::Tree;

my $url0 = 'http://www.website.ch/blah.aspx';

my $doc0 = get($url0);

my $tree0 = HTML::Tree->new();
$tree0->parse($doc0);

my @juice = $tree0->look_down(
    _tag => 'option'
);

foreach ( @juice )
{
    print $_->as_HTML, "\n";
}

我知道有更简单的方法可以做到这一点 - 请随意谈论这些方法,但我现在正在这样做。我想将所有value 条目放入一个数组中,所以例如如果我的(我所称的)look_down 树数组元素之一如下

<option value="YIDDSH">Yiddish</option>,

然后我想以某种方式将“YIDDSH”(不带引号)推入一个数组,并从数组中的下一个元素中拉入下一个值。

【问题讨论】:

    标签: regex arrays perl html-tree


    【解决方案1】:

    最简单的方法是使用attr方法提取value属性的内容,并使用map函数循环遍历所有元素。

    my @values = map { $_->attr('value') } @juice;
    

    【讨论】:

    • 可以在同一行匹配替换吗?也就是说,如果我有value="PIG&PORK S",我想用# 替换& 的每个实例,用0 替换` ` 的每个实例。
    • map { my $s = $_->attr('value'); $s =~ s/&/#/g; $s =~ s/ /0/g; $s }
    • map { $_->attr('value') =~ s/&/#/rg =~ s/ /0/rg }(需要 5.14+)
    猜你喜欢
    • 1970-01-01
    • 2018-02-22
    • 2022-07-06
    • 2021-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-21
    • 1970-01-01
    相关资源
    最近更新 更多