【发布时间】:2016-05-06 17:34:02
【问题描述】:
我无法从一个文件中获取多个 html 标记内容。这是我的代码的最后一部分,可以将文本解析并打印到一个文件中,每个文件读取一行:
my $h = HTTP::Headers->new;
my $p = HTML::HeadParser->new($h);
$p->parse($text);
for ($h->header_field_names) {
my @values = split ',', $h->header($_);
if (/keywords/i , /description/i , /title/i) {
$csv1->print ($fh1, \@values);
#} elsif (/description/i) {
# $csv1->print ($fh1, \@values);
#} elsif (/title/i) {
# $csv1->print ($fh1, \@values);
}
}
}
我可以获取第一个标签并将其写入文件,但仅此而已。 最终,我想获得一个包含多个值的 CSV 或制表符分隔的行。
我制作了非常基本的 html 文件,看起来像这样
<head><keyword>Test</keyword>
<description>Test2</description>
<title>Test3</title></head>
我尝试了几种不同的方法,但都没有成功。
我总是可以从 and 中提取内容,但永远不能从 and 中提取内容。在 HTML 文件前面会导致它看不到内容。现实生活中的 HTML 文件与我编造的文件似乎也很难。
【问题讨论】:
-
首先,问题是什么?其次,请创建一个minimal reproducible example,突出显示您遇到的任何问题。
-
根据上述要求,专注并保持简短和甜蜜。
-
@tlialin 我尝试在您的帖子末尾正确格式化 for 循环。请查看它,因为我在此过程中删除了一个
},这看起来像是一场意外。 -
我将问题回滚到修订版 4,这是它开始变异之前的原始问题。
-
@tlialin 请停止对问题进行大量代码更改 -- 如果您有新问题,请使用“提问”按钮。